10 of 41,514 ZIPs: I measured the USPS polygon sample

USPS finally published official ZIP Code boundary polygons. The free sample contains 10 ZIP codes — 0.024% of the 41,514 in use — and the two files inside it don't even cover the same 10.

What USPS actually released

The announcement hit Hacker News today (680 points): USPS ZIP Code Boundaries, a national polygon layer built from USPS delivery address and location data, sold as the ground truth for ZIP boundaries. The product page lists three tiers — Internal, Enterprise, and Publication — with four quarterly updates, and the full dataset goes through a license agreement and an order form. No public price is listed anywhere on the page.

The only free slice is a sample zip posted September 18, 2026: 60,043 bytes, containing two GeoJSON files and a copyright PDF. I downloaded it and measured everything in it.

USPS_ZIP_Code_Boundaries_Product.geojson 129,681 bytes, 10 features USPS_ZIP_Code_Boundaries_Product_Clip.geojson 149,446 bytes, 10 features USPS_GIS_Copyright.pdf 28,420 bytes 

All 10 features in both files are Puerto Rico ZIPs in the 006xx range. Every geometry is a MultiPolygon in plain lon/lat — coordinates check out, spanning -67.22 to -66.52 longitude, 17.93 to 18.52 latitude. Each feature carries five properties and nothing else: OBJECTID, zip_code, state_abbr, city_name, county_name. No delivery counts, no area field, no vintage date in the properties — the file build dates inside the zip are June 9–10, 2026.

The two files disagree with each other

The "full" file and the "clipped" file (water bodies and large parks removed, per the interface control document) should be the same 10 ZIPs with slightly different outlines. They aren't:

ZIP in full? in clip? 00606 yes no 00616 yes yes 00617 yes yes 00622 yes yes 00623 yes yes 00624 yes yes 00627 yes yes 00660 yes yes 00662 yes yes 00664 yes yes 00667 no yes 

00606 (Maricao, inland, mountainous) appears only in the full file. 00667 (Lajas, coastal) appears only in the clipped file. Nine ZIPs overlap; the tenth differs in each direction. For a sample whose entire job is to show what the product looks like, the two variants covering different ZIP sets is a strange first impression — and it means you can't diff full-vs-clipped on the full sample, only on the 9 shared ZIPs.

On those 9, clipping barely matters. Eight of them are byte-identical in area to two decimal places. The one exception is 00622 (Boquerón, Cabo Rojo): 73.15 km² full vs 71.73 km² clipped, a 1.42 km² cut — presumably the coastline. Vertex counts tell the same story: most polygons are unchanged (00627 keeps all 200 vertices in both files), and 00622 actually gains vertices when clipped, 136 to 160, because the cut introduces new boundary segments along the water.

Against the file everyone actually uses

The free alternative is the Census Bureau's ZIP Code Tabulation Areas (ZCTAs) — statistical approximations built by aggregating census blocks, last redrawn for the 2020 Census. I downloaded the national 2020 ZCTA shapefile (33,791 records, 66.6 MB) and computed spherical-excess areas for both datasets with the same code, so the comparison is apples to apples. The Census file also publishes an official land-area field (ALAND20); my computed areas land within 0.4–4.2% of it, which bounds my measurement error.

ZIP USPS full USPS clip ZCTA area full/ZCTA clip/ZCTA 00606 117.55 km² — 115.26 km² 1.020 — 00616 29.58 km² 29.58 km² 28.47 km² 1.039 1.039 00617 50.12 km² 50.12 km² 47.86 km² 1.047 1.047 00622 73.15 km² 71.73 km² 84.09 km² 0.870 0.853 00623 104.49 km² 104.49 km² 103.46 km² 1.010 1.010 00624 118.65 km² 118.65 km² 122.19 km² 0.971 0.971 00627 118.52 km² 118.52 km² 120.40 km² 0.984 0.984 00660 31.97 km² 31.97 km² 29.33 km² 1.090 1.090 00662 107.67 km² 107.67 km² 107.12 km² 1.005 1.005 00664 116.42 km² 116.42 km² 121.86 km² 0.955 0.955 00667 — 181.41 km² 156.97 km² — 1.156 

Eight of the eleven ZIPs agree within 5%. The three outliers are the interesting ones: 00622 is 13% smaller than its ZCTA, 00660 is 9% larger, and 00667 is 15.6% larger. These are delivery-based boundaries vs block-aggregated approximations, so disagreement is expected — but 15% is not a rounding error, it's a different answer to "where does this ZIP end." The median ratio is 1.01, so the systematic bias is small; the per-ZIP variance is the story.

Vertex density is comparable too: USPS polygons run 83–266 vertices, ZCTA 124–262 points for the same ZIPs. USPS isn't shipping dramatically more detailed outlines — it's shipping authoritative ones, drawn from delivery points instead of census blocks.

What the sample is actually selling

The honest read: this is a teaser, and the product is the gap it points at. The Census file stopped in 2020 and the next redraw is the 2030 Census; one commercial vendor's count (August 2026 release) says 7,733 of today's 41,514 ZIPs — 18.6% — have no 2020 ZCTA at all, and USPS has introduced 78 new ZIPs since the file was drawn. If your pipeline keys anything to ZIP polygons — insurance rating, delivery routing, demographic joins — you've been working with a six-year-old approximation that doesn't cover a fifth of the map.

Whether the official file is worth a license fee depends on whether your ZIPs are among the ones where it disagrees. The sample can't answer that: 10 Puerto Rico ZIPs, two files that don't match each other, no price on the page. What it can answer is the shape of the disagreement — mostly within 5%, occasionally 15% — and that's enough to justify downloading the sample before you sign anything. The ground truth is real. The free taste of it is 0.024%.

Sources: USPS PostalPro, "USPS ZIP Code Boundaries" (postalpro.usps.com/zcb, Hacker News November 10, 2026, 680 points); ZIP Code Boundaries GeoJSON Sample File, posted September 18, 2026 (stage-postalpro.usps.com/storages/2026-09/USPS_ZIP_Code_Boundaries_Product_geojson_Sample.zip); ZIP Code Boundaries Product Interface Control Document v3.00, April 2026; U.S. Census Bureau, 2020 ZCTA cartographic boundary file (cb_2020_us_zcta520_500k.zip, 33,791 records); zip-codes.com, ZIP Code Boundary Data (7,733 of 41,514 ZIPs without a 2020 ZCTA, August 2026 release). Areas computed with the spherical-excess formula (R = 6,371.0088 km); ZCTA areas cross-checked against the Census ALAND20 field.