The "Fast Lane" Answer
Asking where to find geocodes is kind of like asking where to find a good sandwich; most people who know where to point you will likely ask, "That depends, what kind of sandwich are you wanting to eat?" The same thing is true when you want to find a service that provides geocodes.
There are a number of providers that offer geocoding as a service, and they vary in strengths and weaknesses. So knowing which provider to use involves determining what kind of service you require and what you're willing to pay for.
Some geocode providers use interpolated geocodes, estimating the location within a margin of error. Other providers offer "rooftop level" accuracy, zeroing in on the exact location. Some can give you geocodes in seconds, while others may take days. Some take an extra step and validate the address before geocoding it, ensuring that the location is real. Many don't. And of course, prices vary among all of these offerings.
Below is a more detailed breakdown of some of the things to consider when looking for a
sandwich geocode provider.
The "Scenic Route" Answer
Are you playing horseshoes or darts? This may seem like an unrelated question, but it's not. Geocoding comes in two flavors where accuracy is concerned, and knowing which one you need is a very important factor in choosing a provider. Now, you might be asking yourself, "Why not go with the most accurate option all the time? Isn't more accurate better?" To which we would respond, "Not necessarily."
The first geocoding method involves actually physically going to the desired location with a GPS device and recording the coordinates of the location's front door. This is called "rooftop level" accuracy, and there's no way to put a pin in the map any closer than that. If you're already thinking "Great! I'll take that one, please," you might want to hit the brakes for a second.
There's a lot of manpower that goes into "rooftop" geocodes. Have you ever ridden the bus and been annoyed by how long it takes because the bus stops so frequently? Imagine stopping at every house and business. On every street. In every city. Et cetera, ad nauseum. And remember, getting those geocodes means paying someone for all of that time they spent making those stops. Usually not a very attractive price tag, but just like buying a ladder, your needs may necessitate paying for all the extra footsteps.
The second method of geocoding is called interpolation. Interpolation estimates a geocode using math that sounds fancier than it really is. Basically, you take two points with known geocode locations, and divide the distance between them to approximate the geocode in the middle. Using this method results in geocodes that fall on regular intervals.
Obviously businesses and homes are not built at regular mathematical intervals, but are built instead at the whims of human beings. That means that interpolated geocodes are less accurate than "rooftop-level," but they require less effort and fewer man hours to determine, thus reducing their cost. And unless you're skydiving onto someone's roof, this "block-level" precision is usually all you'll need. After all, it's the level of accuracy that most people use.
Which brings us back to our question: does "almost" count in horseshoes and geocodes, or do you need to stick the dart in the bullseye to achieve the results you want?
Let's talk about cookies, and not just because they're delicious. They're a good metaphor for many things in life, and geocodes are no exception. Specifically, cookies have a lot they can teach us about how geocoding speed can be affected by processing method, and volume of requests. We'll start with the basics.
Pre-made vs. From Scratch
If you're the culinary type, you'll probably be mixing the cookie dough on your own. If you're not, you might buy some pre-mixed cookie dough from the store. Doing that might save you 15 minutes. Geocodes are a little like that; some companies will process a geocode "from scratch." Other companies will provide you with geocodes that come from a pre-compiled list. Processing geocodes from scratch takes more time and doesn't necessarily give you a higher quality product, just like in our cookie example. So that's the first thing that might impact how long it takes to get your geocodes.
Next there's the question of how many cookies you want. You're not likely to want just one cookie (honestly, who stops at one?). So you're going to be making a lot, and that's where things start can start to slow down. There's only so many cookies you can fit onto a cookie sheet and only so many sheets you can fit into the oven to be processed at a time. Computers are the same way. The more batches you enter into the computer, the longer it may take to process them.
What happens is the processing power is divided amongst requests that come in, slowing down the overall progress of everyone's work. Taken to the extreme, the process can crash from
overfilling the oven overloading the computer.
To avoid this problem, sometimes a company will prevent the submission of "batches" of requests altogether, offering only one-at-a-time requests. And those that do offer batch services may put a cap on how large a batch can be or how many batches can be submitted at once. Sometimes batches aren't even processed when they come in, but are instead queued for later processing, and then emailed back to the customer.
Imagine you're a little kid in your parents' house, and you just finished baking cookies as a family. You reach for five cookies, but mom says you can't eat that many or you'll have a tummy ache. She gives you two, then says you can have more tomorrow. Limiting consumption or usage like this is called "throttling."
A company may cap off your individual requests with a limit per second or per day, or anything in between. Just like you can't eat all of the cookies in one sitting (challenge accepted!), your provider may not allow you to have all your geocodes processed at once. Take the Google Maps API as an example: they cap off daily usage at 2,500 requests, and will halt any progress beyond 5 requests per second for their free-to-use model. Another good comparison is having an oven in the kitchen, but being forced to use a toaster oven instead.
To sum up, how fast you get your geocodes can be impacted by:
- The presence or lack of a static list (buying the dough vs. making it)
- Batches (full sheet of cookies? If yes, how full?)
- Throttling limit (are you using the full oven, or just a toaster oven?)
- Queueing and processing delays (do the cookies go right into the oven?)
This list is not comprehensive, but these are some of the important factors that vary from provider to provider, and they should be considered when trying to decide who to choose for your geocoding needs.
So make sure you know how you want to bake your cookie (batches).
Another important factor in choosing a geocode provider is the issue of address validation. It's easy to assume that "rooftop level" accuracy in geocodes is most reliable data available. After all, if everything was geocoded by hand, doesn't that mean they know where everything is? If the provider can tell you right where something is on a map, then that's the highest level of validation possibly available, right?
Well, there's a problem with that point of view. What happens if someone gives the geocode provider an address that doesn't exist? Unfortunately, mapping services like Google and Bing will respond by providing a fabricated geocode. In other words, they tell you where the geocode would be if that address were real. So, the coordinates on the map are real, but the address isn't. If you're trying to send something to that address, even though you have a geocoded location, the delivery service may not deliver it because the address isn't valid.
Even though many mapping services provide "rooftop level" geocodes, if they don't validate the address there's no way to tell if the address is real. To avoid showing up at a theoretical doorstep, you need to validate the address first, then geocode it.
"Address validation" is the process of checking an address against an authoritative mailing database to see if it's real. If the address matches one in the database, it is "validated." In other words, it's an actual location that currently receives mail from the USPS (or applicable international postal service). It's a handy trick that some geocoders use to make sure they don't hand you back bad information.
It's something you might want to consider when choosing a geocode service—how difficult would it make things for you if your delivery person drives up to the GPS coordinates of an empty lot?
Making a Decision
Using the information presented here, you should be able to build some guidelines that allow you to make an informed decision as you search among providers. Which geocode provider you choose will depend a lot on whether you want to play horseshoes or darts with your geocodes. If you absolutely must have laser-guided accuracy, you can choose a provider that offers that level of precision. If your geocoding needs can be met through interpolation, that frees you up to choose from options that will likely cost less.
That way, you can get the sandwich you're hungry for. And maybe some cookies on the side.