Assigning centerline address ranges

Some real example data (or at least a little less contrived) might help you to get answers that are more what you're looking for. However, with what you've shown, I'd say you have the option to either be "currently precise" and allow for future expansion, or be "inclusively precise". I'll explain.

Currently Precise (section B would be from 5 to 6)

  • Based on the data that you now have. Your precision would be as high as possible based on data that is currently available but you know for certain that there is additional data that you don't have and you anticipate having that data at a future point.

Inclusively Precise (section B would be from 4 to 6)

  • Based on data that you have right now, and part of that data also includes that you know are missing but that you don't currently have the data for. Basically, you DO know what you don't know. Since you know, or can infer, additional address points about the segments you are working with, you should add them. Include as much data as you have and can accurately infer.

Decide which of those methods works best for what you are doing. Either will work, and either is just fine. I prefer the inclusive method. Because even knowing what you don't know is additional information. For example, in the USPS address validation industry, when we come across an address that doesn't validate, I can then check the ZIP code and determine that it is a town that has PO Box delivery only, there is no USPS street delivery within that town. Knowing that, I now have the option to include that data that I "DON'T" know, which is that street addresses aren't made available within that town.

Any type of additional information, even knowing what you don't know, is helpful.


Coming from someone who formerly worked with 9-1-1 data, the best answer would be: Use a combined geocoder. By using a combined geocoder, you can use your point data as a first pass, then fallback to street centerlines for a second pass if you got no hits with the point data.

Because you already have good point locations representing actual address locations, you should be able to geocode your tabular address "text" to the your point database. Of course, because new building/addresses are popping up all the time, it is nearly impossible for you to always have an up-to-date point layer.

Therefore, for your street centerlines, you are better off trying to capture the "extrapolated range" of the potential addresses on a block (ie- 100-199). This will capture all of the new addresses that have not yet been added to your point database.

You should also consider having attribute fields for the Left and Right side of your street. Typically though your ranges would look something like Left (100-198), Right (101-199). However, some jurisdictions, you might see that the extrapolated range for the left is 100-198, whereas the right is 101-149 (where an existing house is on the corner @149, and another across the street is @198). By having a left & right field, you are increasing the accuracy of the geocode for the right side.

You may want to take a look the the following NENA Standards documents for GIS data for additional standards/ideas/examples:

  • 71-501 v1 - Synchronizing GIS with MSAG & ALI
  • 02-010 v9 - Data Formats for ALI, MSAG & GIS
  • 02-014 v1 - GIS Data Collection and Maintenance

Assuming I understand your question correctly...

If you know the range of the primary numbers (of the addresses) for each street/section and have coordinates of the street as it winds along, then interpolate by using the full length of each section.

For example: if you know the range of primary numbers to be 100-200, and you have addresses with primary number 175 and 190, then you may generally assume the first is 3/4 of the way between your beginning and end coordinates, and 190 is 9/10 of the way between the coordinates. In other words, you would choose the coordinate "as it winds along" that is closest to 3/4 of the way along for the first, and 9/10 of the way along for the second.