2026-07-17 — Phase 4: the rerank zero, the redesign, and +18.5pp on bare-street (zero training)
Night-4 of the #727 stagestageOne of the dataflow stages in the runtime pipeline (normalize, locale gate, kind classify, phrase group, token classify, sequence correct, reconcile, resolve). Distinct from tier (model vocabulary) and phase (plan milestone).-2 arc (plan #1134), the phasephaseA milestone in the implementation plan (Foundation, Corpus, Training, Integration, and forward-looking phases). Distinct from stage (runtime pipeline) and tier (model vocabulary). the plan called "the whole ballgame": how much of the measured k-best headroom (oracle@5 0.723 vs seg@1 0.577 on parity) can evidence-based reranking actually collect? Two measurements, one redesign, one decisive result — all zero-GPU.
1. The phase-4a zero: full-geocode tier evidence is the wrong instrument
The repaired phasephaseA milestone in the implementation plan (Foundation, Corpus, Training, Integration, and forward-looking phases). Distinct from stage (runtime pipeline) and tier (model vocabulary).-4a harness (scratchpad/rerank-valid.mjs, the full situssitusThe physical site address of a property, as opposed to the owner's mailing address. Parcel records often carry both; the divergence is a real-world data-quality challenge.+BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure.+OSMOpenStreetMap (OSM). A community-curated global map database (ODbL-licensed) with addr:* tagged features and place hierarchies. A secondary corpus source and a source of street names. cascade after
the earlier admin-only dark-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. bug) ran the 267 live parity fixtures through k=5 segmentations
on the v301 spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree.-headattention headOne of several parallel attention computations in a layer, each free to focus on a different kind of relationship between tokens. Their outputs are concatenated — 'multi-head attention'. Mailwoman uses 4 heads. artifact, geocodinggeocodingThe process of converting an address into geographic coordinates (latitude and longitude). Mailwoman geocodes in a multi-tier cascade: exact address-point match → street interpolation → locality centroid. Each tier is progressively coarser but more widely available. EVERY hypothesis and preferring the finest resolution 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.:
seg@1: 0.5768 rerank@1: 0.5768 (delta +0) oracle@5: 0.7228
fired on 1/267: fixed 0, broke 0
evidence rate: 9/267 (3.4%) — tier census: 1308 admin / 25 address_point / 2 street
The rerank collected NOTHING — because it is evidence-starvedstarvedA tag with too little training representation to learn — near-zero F1 — because the corpus adapter never emits examples of it (intersection tags sat at 0% until an intersection synthesizer existed)., not wrong. The failing class is context-free fragments, and a fragment cannot reach the 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. layerslayerOne transformer block — attention plus a feed-forward network, with normalization and residual connections — applied to every position. Stacking layers lets the model build up richer representations; Mailwoman's encoder has 6. (no localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy./postcodepostcodeThe country-specific postal code (US ZIP, French code postal, etc.). Mailwoman handles postcode parsing entirely by rule classifier — a regex problem, not an ML one. to shardshardA partial output file of the corpus build, written in Parquet format. The training pipeline streams shards row by row. on), so every hypothesis ties at 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. and the arbiter has nothing to prefer. Full-geocode 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 structurally blind exactly where the headroom lives.
2. The redesign, converged on twice in one night
P1's measured-negative design doc (PR #1152) independently specified the same fix hours earlier:
the arbiter needs streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-NAME existence evidence — "does this hypothesis's streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. surface exist
as a streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. name" — which is queryable even for fragments. The BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure. streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-centroids DB
(street-centroids-fr.db, 2.2M street_norm × locality rows) is that index for FR, already built
and provenance-tracked.
3. The phase-4b result: name evidence collects the headroom
Falsifier at board scale (/tmp/span-worktree/name-evidence-board.mjs; the FR fragment board's four
streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. classes, n=1600, v301 k=5, rerank policy = first hypothesis by parseaddress parsingThe process of decomposing a free-text postal address string into structured components — house number, street name, locality, region, postcode, and country — so a geocoder can resolve them to coordinates. rank whose streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. surface
exists in BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure.; positive evidence only, no scores blended):
| class | n | seg@1 | name-rerank@1 | delta |
|---|---|---|---|---|
| bare-streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. | 400 | 0.675 | 0.860 | +18.5pp |
| date-name | 400 | 0.100 | 0.182 | +8.2pp |
| streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-particle | 400 | 0.802 | 0.860 | +5.8pp |
| streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-housenumber | 400 | 0.897 | 0.922 | +2.5pp |
| overall | 1600 | 0.619 | 0.706 | +8.7pp |
Of 202 recoverable fixtures (wrong at rank 1, right in the top 5): fixed 140, broke 14, neutral 48 — a 10:1 fix/break ratio. The +18.5pp lands on bare-streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. — the 66% recallrecallOf the spans whose gold label is a given tag, the fraction the model found. High recall means few misses. Paired with precision to compute F1. class that every corpuscorpusThe BIO-labeled training data used to train Mailwoman's neural classifier. Assembled from real sources (OpenAddresses, National Address Database) and synthetic shards (boundary stress, order variants, negative space). Managed by @mailwoman/corpus. lever plateaued on (the ~0.77 ceiling) and that option C was designed to attack. The arbiter collects it without a single trainingtrainingThe process of adjusting a model's parameters so its predictions match labeled examples, by repeatedly measuring error and nudging the weights to reduce it. Distinct from inference, when the trained model is run on new input. step.
Caveats, stated
- Measured on the v301 spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree.-headattention headOne of several parallel attention computations in a layer, each free to focus on a different kind of relationship between tokens. Their outputs are concatenated — 'multi-head attention'. Mailwoman uses 4 heads. artifact (the archived
feat/727-span-headbranch's k-best surface) — the only modelneural classifierThe machine learning model at the core of Mailwoman's parser — a transformer encoder (~30M parameters) trained from scratch to do BIO token classification over addresses. It learns the 'grammar' of address formats; the gazetteer supplies the 'atlas.' with exported spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree. scores. The JS decoderdecoderIn a transformer encoder-decoder model, the part that produces output sequences. Mailwoman's classifier is encoder-only (no decoder); the 'CRF decoder' is a different thing — a structured-prediction layer that picks the best label sequence from the encoder's outputs. is NOT on main; this result is the consumer that justifies merging it. - FR only — the one localelocaleThe combination of language and country an address comes from. en-US and fr-FR are the locales Mailwoman ships weights for. with a complete streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-name index on hand. Generalizing needs
per-countrycountryThe top-level address component (an ISO country). Closed-vocabulary, so it is best handled by a deterministic matcher feeding a proposal rather than a retrained model head. name sources (US TIGERTIGERThe US Census Topologically Integrated Geographic Encoding and Referencing database. Used as a corpus source for street-segment data./situssitusThe physical site address of a property, as opposed to the owner's mailing address. Parcel records often carry both; the divergence is a real-world data-quality challenge., NO Kartverket, PT/RO BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure.-equivalents) behind one
StreetLocalityEvidenceinterface (P1's spec). - The index is BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure. and the board fixtures are BANBAN (Base Adresse Nationale). France's authoritative open national address register — the highest-quality training source for French addresses, with full component structure.-derived — not circular (the index is a lookup, not the modelneural classifierThe machine learning model at the core of Mailwoman's parser — a transformer encoder (~30M parameters) trained from scratch to do BIO token classification over addresses. It learns the 'grammar' of address formats; the gazetteer supplies the 'atlas.'; production carries the same index and the evalevalRunning the model against a held-out golden dataset and computing per-component F1, exact-match, calibration, and resolved-coordinate error. surfaces are real streetsstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.), but the 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. is by construction ideal. Foreign-localelocaleThe combination of language and country an address comes from. en-US and fr-FR are the locales Mailwoman ships weights for. generalizationgeneralizationA trained model's performance on data unlike its training set — new regions, new input distributions. The property honest eval is designed to measure. will be lower.
- The 14 breaks are real streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. names outranking gold; a localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.-scoped lookup (streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. × localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy.) should cut them further. Unscoped membership was the v0 policy.
Addendum — falsifier v2: the break audit + two guards (same night, 06:20)
The 14 breaks decompose into exactly two classes: truncationtruncationCutting an input down to the max sequence length (or an LLM response to its token limit), discarding everything past the cap. wins (10/14 — the picked streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. is
a sub-spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree. of gold that is itself in the index, usually the bare type word rue/chemin) and
moved off a correct rank-1 (4/14 — gold at rank 1 but missing from the index on a
hyphen/apostrophe fold, with the in-index pick 2–5 score unitsunitA subdivision of a building — apartment, suite, floor — that refines a street address. Mailwoman's unit component; a designator plus identifier forms a subpremise. down). Two guards, pre-registered
(breaks ≤6, fixes ≥135): G1 = no evidence credit for pure streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-type vocabularyvocabularyThe fixed set of tokens a tokenizer can produce. Mailwoman's SentencePiece vocabulary is tens of thousands of subword pieces, with byte fallback for anything outside it.; G2 = evidence may
not promote a hypothesis more than 2.5 score unitsunitA subdivision of a building — apartment, suite, floor — that refines a street address. Mailwoman's unit component; a designator plus identifier forms a subpremise. below rank 1. Result:
| policy | fixes | breaks | streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.@1 | bare-streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. |
|---|---|---|---|---|
| v1 (bare existence) | 140 | 14 | 0.706 | 0.860 |
| v2 (+G1 +G2) | 148 | 3 | 0.711 | 0.875 |
Both bars cleared; G1 also lets evidence land on gold more often (fixes UP). One residual: G2 dips
streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.-housenumber 0.922 → 0.912 (blocks a few legitimate deep picks). The implementation spec with
the interface + productionization plan is
docs/superpowers/specs/2026-07-17-727-phase4c-street-name-evidence.md.
What this decides
- PhasephaseA milestone in the implementation plan (Foundation, Corpus, Training, Integration, and forward-looking phases). Distinct from stage (runtime pipeline) and tier (model vocabulary). 4c is justified and specified: merge the archived spanspanA contiguous range of characters or tokens in the input string, tagged with an address component type (street, locality, postcode, etc.). Parsed addresses are represented as collections of spans, possibly nested in a tree.-decode surface (it now has a
consumer), define
StreetLocalityEvidence, build per-countrycountryThe top-level address component (an ISO country). Closed-vocabulary, so it is best handled by a deterministic matcher feeding a proposal rather than a retrained model head. name indexes, wire the rerank behind a flag, isotonic ambiguity gate on top-1/margin per the plan. The bare-fragment class no longer needs option C as the primary lever — the arbiter beat the projected channel gains without touching the modelneural classifierThe machine learning model at the core of Mailwoman's parser — a transformer encoder (~30M parameters) trained from scratch to do BIO token classification over addresses. It learns the 'grammar' of address formats; the gazetteer supplies the 'atlas.'. - The plan's discipline held: parseaddress parsingThe process of decomposing a free-text postal address string into structured components — house number, street name, locality, region, postcode, and country — so a geocoder can resolve them to coordinates. scores stayed in one probability space; the rerank signal is measured atlas evidence only; rank-2-beats-rank-1 cases (140 of them) are loggable trainingtrainingThe process of adjusting a model's parameters so its predictions match labeled examples, by repeatedly measuring error and nudging the weights to reduce it. Distinct from inference, when the trained model is run on new input. data.