A computer-implemented method of increasing routing efficiency between a plurality of given autonomous systems, ASes, and respective sets of target ASes in a border gateway protocol, BGP, session, the method comprising: receiving, at a processor, a set of Routing Information Bases, RIBs, indicated by a user; and the method comprising: at the processor, parsing the RIBs by extracting respective sets of routing attributes from the RIBs; identifying a set of intermediate ASes from within the respective sets of routing attributes; inferring economic relationships between pairs of adjacent intermediate ASes; calculating distances between intermediate ASes and create an MxM matrix of distances between intermediate ASes in memory, wherein M is a number of ASes found in at least one of the RIBs; inferring candidate ASes from the set of intermediate ASes using the matrix of distances; for each respective AS described in the matrix of distances, computing a list of potential saved hops to reach every target AS if the respective AS were connected along paths defined between given ASes and target ASes; and outputting results, including the list of potential saved hops, to the user to identify candidate ASes having higher values of impact to connect along the paths to reduce an average number of hops along the paths, thereby increasing routing efficiency between the given ASes and the target ASes. receiving, at a processor, a set of Routing Information Bases, RIBs, indicated by a user; and the method comprising: at the processor, parsing the RIBs by extracting respective sets of routing attributes from the RIBs; identifying a set of intermediate ASes from within the respective sets of routing attributes; inferring economic relationships between pairs of adjacent intermediate ASes; calculating distances between intermediate ASes and create an MxM matrix of distances between intermediate ASes in memory, wherein M is a number of ASes found in at least one of the RIBs; inferring candidate ASes from the set of intermediate ASes using the matrix of distances; for each respective AS described in the matrix of distances, computing a list of potential saved hops to reach every target AS if the respective AS were connected along paths defined between given ASes and target ASes; and outputting results, including the list of potential saved hops, to the user to identify candidate ASes having higher values of impact to connect along the paths to reduce an average number of hops along the paths, thereby increasing routing efficiency between the given ASes and the target ASes. parsing the RIBs by extracting respective sets of routing attributes from the RIBs; identifying a set of intermediate ASes from within the respective sets of routing attributes; inferring economic relationships between pairs of adjacent intermediate ASes; calculating distances between intermediate ASes and create an MxM matrix of distances between intermediate ASes in memory, wherein M is a number of ASes found in at least one of the RIBs; inferring candidate ASes from the set of intermediate ASes using the matrix of distances; for each respective AS described in the matrix of distances, computing a list of potential saved hops to reach every target AS if the respective AS were connected along paths defined between given ASes and target ASes; and outputting results, including the list of potential saved hops, to the user to identify candidate ASes having higher values of impact to connect along the paths to reduce an average number of hops along the paths, thereby increasing routing efficiency between the given ASes and the target ASes.