Geocoder vs provided coordinates (#619)
Generated by scripts/record-matcher/geocoder-vs-provided-coords.ts. Source: TX HHSC nursing-facilities (Geo Location = provided lat,lon). We geocode each facility's physical address with mailwoman's parser + resolverresolverThe component that converts parsed address components (locality, region, postcode) into coordinates by looking them up in the gazetteer. The resolver ranks candidates by name match, population, and proximity, and returns the best-matching place with its centroid or polygon. and measure the great-circle delta to the provided point. The provided coordinate is a third-party geocode of unknown provenance — a large delta is a discrepancy to inspect, not automatically our error.
Result
- facilities geocoded: 1175 of 1175 with a usable address + provided coord
- unplaced by our geocoder: 0 · skipped (no coord / no address): 0
- overall delta: p50 881 m, p90 25.90 km, p99 2188.95 km (max 11143.77 km)
By resolution tier
| tiertierInternal versioning of which label classes the model emits. Tier 1 is the coarse components (country, region, locality, postcode); Tier 2 adds venue, street, house_number; Tier 3 (future) would add attention, po_box, and POI venue subtyping. Historically called 'Stage 1/2/3' before the runtime-pipeline naming made that ambiguous. | n | p50 | p90 |
|---|---|---|---|
| admin | 627 | 3.98 km | 1235.39 km |
| address_point | 431 | 27 m | 112 m |
| interpolated | 117 | 114 m | 368 m |
Reading
Two regimes. StreetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-tiertierInternal versioning of which label classes the model emits. Tier 1 is the coarse components (country, region, locality, postcode); Tier 2 adds venue, street, house_number; Tier 3 (future) would add attention, po_box, and POI venue subtyping. Historically called 'Stage 1/2/3' before the runtime-pipeline naming made that ambiguous. placement is excellent (the address_point + interpolated rows above) — rooftoprooftopGeocoding precision at the building or parcel level — coordinates within a few metres — the highest tier of the geocode cascade. Sourced from address-point and situs data.-to-segmentsegmentA punctuation-bounded chunk of the normalized input — the comma-separated parts of 'Portland, OR' — used to give downstream stages structural context. medians, the precisionprecisionOf the spans the model labeled as a given tag, the fraction it got right. High precision means few false positives. Paired with recall to compute F1. that makes geo-first blockingblockingThe first stage of entity resolution: generate candidate record pairs using cheap, high-recall keys (geo cell, canonical address, phone) instead of comparing every record to every other (O(n²)). The matcher only scores pairs that survive blocking. and the distance evidence trustworthy. The admin (centroid) tiertierInternal versioning of which label classes the model emits. Tier 1 is the coarse components (country, region, locality, postcode); Tier 2 adds venue, street, house_number; Tier 3 (future) would add attention, po_box, and POI venue subtyping. Historically called 'Stage 1/2/3' before the runtime-pipeline naming made that ambiguous. is where no streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. shardshardA partial output file of the corpus build, written in Parquet format. The training pipeline streams shards row by row. covered the address: accuracy is necessarily km-scale, and it carries a catastrophic tail (the p90/p99/max above) from wrong-regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. admin resolutions and/or malformed provided coordinates — NOT streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-tiertierInternal versioning of which label classes the model emits. Tier 1 is the coarse components (country, region, locality, postcode); Tier 2 adds venue, street, house_number; Tier 3 (future) would add attention, po_box, and POI venue subtyping. Historically called 'Stage 1/2/3' before the runtime-pipeline naming made that ambiguous. error. Those extremesexpectation-maximizationAn iterative algorithm that estimates model parameters when some variables are unobserved. In Mailwoman's matcher, EM learns the Fellegi-Sunter m and u parameters from unlabeled data — no training labels needed. are a signal to inspect, and they motivate wider streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-shardshardA partial output file of the corpus build, written in Parquet format. The training pipeline streams shards row by row. coveragecoverageThe fraction of a population or region for which a data source has real, non-placeholder entries — e.g. 47% rooftop coverage on Texas addresses. Distinct from accuracy on the rows that are present. for rural TX plus an admin-tiertierInternal versioning of which label classes the model emits. Tier 1 is the coarse components (country, region, locality, postcode); Tier 2 adds venue, street, house_number; Tier 3 (future) would add attention, po_box, and POI venue subtyping. Historically called 'Stage 1/2/3' before the runtime-pipeline naming made that ambiguous. sanity bound. The self-reported-vs-independent coordinate discrepancy is itself a data-quality column the reconciliation surfaces (#621).