Using Python and R, what would be the best strategy to tie Census Block-level data to zip/zip + 4? I understand we're not matching polygon boundaries (zip codes are not geographies), but somehow service bureaus/lettershops tie addresses to Census demographic data. Do they work off zip+4 centroids? How can this lookup be updated with new zip/zip+4 definitions (i.e. not be bound by the 2010 ZTCA). Thanks for any pointers/links/book references.

  • Do you want to find demographics for ZIP code, or demographics for an address? The former involves simple intersection, areal allocation, or dasymetric mapping. The latter involves geocoding. When you clarify, I can provide a real answer. Jun 12, 2014 at 22:10
  • Good question. All I have available is the zip code (in some cases, zip+4), so I'm interested in finding demographics for a zip code. Jun 17, 2014 at 18:43
  • If all you are interested in is aggregate demographics by ZIP code, I would recommend using the ZCTAs. ZCTAs have been updated for ACS 2012 5-yr, and will continue to be updated between the decennial censuses. For ZIP+4s, I have never seen boundary files for those, so I'm not sure that you can do better than ZIP/ZCTA-level demographics, unless you are prepared to use geocoding to create your own ZIP+4 polygons. Jun 17, 2014 at 23:05
  • I didn't know ZTCAs were now updated between Censuses, that actually simplifies things considerably. Thanks for the info. Jun 20, 2014 at 3:16
  • OK, if that's adequate for you, I'll turn that into an answer and you can mark as solved. Jun 20, 2014 at 16:41

1 Answer 1


ZCTAs are now updated between censuses using American Community Survey data. Because ZCTAs are small areas, you can only get them in the five-year releases. The latest ZCTAs are in the ACS 2012 5-year release.

ZCTAs of course don't conform exactly to ZIP Codes, but if your goal is just to get plausible demographics at the ZIP Code level, this is by far the easiest way. If you want to develop own solution, you would have to use areal allocation (intersect the the polygons, then distribute the population based on proportion of area overlapping) or dasymetric mapping.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.