Home » Local Search

Proximity Search Algorithms – 411 Mobile & Voice Search

Written By: langdon on August 27, 2009 No Comment

Proximity Search Algorithms – 411 Mobile & Voice Search

Free 411 mobile and voice search uses a sophisticated set of algorithms to determine the order in which results are returned to the caller.  By default these algorithms are configured to provide highly relevant results for any type of category while also factoring in placement and ranking information from the merchant data base.  In fact, the relative importance of proximity vs. ranking data is configurable on a per-category basis.  This allows the mobile platform to effectively support categories where proximity is very important (i.e. coffee shops and restaurants), services that are mobile (i.e. taxis, plumbers), and everything in between.  Results are presented in a weighted random order, providing preferred merchants with preferential placement while simultaneously ensuring fair representation for all.


Proximity is the first criteria in the search – it is calculated as the distance from the merchant to the search location.  If the search is specified for a region (e.g. a neighborhood) and not a specific location, the distance is measured to the boundary of the region, or is considered zero if the merchant is actually in the region.

In general, proximity information is used to identify sets of relevant merchants, grouped by their distance from the search location or region.  For example, a given search might return all merchants within the specified region as the first group, merchants who are 0.01 – 0.5 miles from the region as the second group, and so on.

Within each of these groups, the actual ordering of the merchants is performed by a weighted random generation algorithm, where the weights are based on the ranking information from the merchant database.  This is very similar in concept to a weighted lottery (like a weighted sports draft lottery, for example), that increases the probability of a high selection for a more heavily-weighted merchant.


Consider the case where a caller is searching for a coffee shop in XYZ neighborhood.  There are a total of 5 coffee shops in the area, with the following information:

  • Coffee Shop #1, in XYZ neighborhood, merchant value score (“MVS”)= 6
  • Coffee Shop #2, in XYZ neighborhood, MVS= 4
  • Coffee Shop #3, <0.5 miles from XYZ neighborhood, MVS = 1
  • Coffee Shop #4, <0.5 miles from XYZ neighborhood, MVS = 8
  • Coffee Shop #5, <0.5 miles from XYZ neighborhood, MVS = 1

Proximity Search

The purple area represents the XYZ neighborhood, while the green area represents the first search expansion area (0.01 – 0.5 miles from the neighborhood).  Note that this diagram is not exactly to scale.

In this case, the platform will group Coffee Shops 1 and 2 together as group A (in the search region), and Coffee Shops 3, 4, and 5 together as group B (first area outside the search region).  Within each group the weighted random algorithm is used to determine the actual results:

Order Result Notes
1 Coffee Shop #1 – 60% probability (6/10)Coffee Shop #2 – 40% probability (4/10) MVS = 6
MVS = 4
2 Coffee Shop #1 – 40% probability (4/10)Coffee Shop #2 – 60% probability (6/10)
3 Coffee Shop #3 – 10% probability (1/10)Coffee Shop #4 – 80% probability (8/10)Coffee Shop #5 – 10% probability (1/10) MVS = 1MVS = 8MVS = 1

…and so on.  Stated another way, if this same search is run 100 times, on average Coffee Shop #1 would be returned as the first choice 60 times and Coffee Shop #2 would be listed first 40 times.

Now consider the case where the caller performs a similar search for a category where proximity is not relevant:

  • Taxi Company #1, MVS= 6
  • Taxi Company #2, MVS= 4
  • Taxi Company #3, MVS= 1
  • Taxi Company #4, MVS= 8
  • Taxi Company #5, MVS = 1

We will assume that these are the only five taxi companies servicing the region.  In this case all five companies are grouped together, and the only sorting criterion used is the merchant ranking score.  Our results now look like this:

Order Result Notes
1 Taxi Company #1 – 30% probability (6/20)Taxi Company #2 – 20% probability (4/20)Taxi Company #3 – 5% probability (1/20)Taxi Company #4 – 40% probability (8/20)Taxi Company #5 – 5% probability (1/20) MVS (#1) = 6MVS (#2) = 4MVS (#3) = 1MVS (#4) = 8MVS (#5) = 1

…and so on

Configuration Options

Proximity vs. Merchant Value Ranking

One of the key configuration options is the relative importance of proximity vs. merchant value ranking in the search algorithm.  This option should be configured on a per-category basis:


Conceptually, increasing the importance of merchant value ranking has the effect of increasing the size of each proximity grouping – for example, instead of the first search area encompassing up to 0.5 miles from the search area, increasing the importance of merchant value ranking might increase the first area up to 1.0 miles.  This would put more merchants into the same proximity group – and remember that within each group, the merchant value ranking is used to determine the order of the results.

As previously discussed, the most extreme manifestation of this is in the “mobile” categories, where proximity is configured to be completely unimportant, thereby placing all merchants into one proximity group.  Since the system uses data from a business listings publisher, the platform defines “all” merchants as any merchant that is listed in the book that services the target area.  Note that there is some special handling required when a search region maps to multiple books.

Optimal Number of Merchants

Another key configuration consideration is the “optimal” number of merchants to return.  This is normally a system-level configuration parameter that is used by the platform to decide when and how often to expand the search region.   The handling is as follows:

  • The search is performed on the initial (smallest) area (for a search region, this is typically simply the region itself)
  • If the search returns fewer than the optimal number of merchants, the next largest area is searched and the process is repeated up to a set maximum number of times

The concept of “Anywhere”

“Anywhere” is mapped to a region that encompasses the entire region in question – for example, a search for “Anywhere” in Calgary maps to the entire city of Calgary.  This effectively treats “anywhere” as a non-proximity search, as all merchants are considered to be within the initial search region.  This means that merchant listings for an “Anywhere” search are sorted by merchant ranking only.

Feel free to reach out if you want to learn more about this topic or how to implement mobile, social media; interactive voice based services; have mobile app development needs or require assistance with your mobile marketing strategy and execution. Your comments on mobile marketing are most welcome. You can leave comments below.  David Langdon (905) 483-1100about me  contact me

Related Articles

Local Search: Voice-Enabled Mobile Search

Local Search: BlackBerry and iPhone

Local Search: FaceBook

Local Search: Instant Messaging

Other Articles

Top 8 most frequently searched and most popular read articles on this site

Other Articles

Digg this!Add to del.icio.us!Stumble this!Add to Techorati!Share on Facebook!Seed Newsvine!Reddit!Add to Yahoo!

Leave a Reply:

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Comment moderation is enabled. Your comment may take some time to appear.

Copyright © 2009-2013 David Langdon, All rights reserved.| Powered by WordPress| Indy Premium theme by Techblissonline.com