v7.1.0 candidate — CA/MX Overture locale add (v385 latam 8k)
Date: 2026-07-18 (night). 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.': output-v384-latam-probe-s42/step-008000 (int8 model-v385-latam8k-int8.onnx). Recipe: v3.8.5-latam-8k.yaml — init_from shipped v381, +CA/MX in country_weights, overture-latam:6.0 source (dedicated, doesn't dilute the trained EU overture rows), 8k (2k probe → 8k resume, constant LR). 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.: v0.13.0-latam overlay (base v0.11.0-no-fragment + a 456k-row overture-latam shardshardA partial output file of the corpus build, written in Parquet format. The training pipeline streams shards row by row., CA 299,809 + MX 156,421).
Status: PROMOTABLE — all guards pass. Promote is the operator's call (HF upload + npm release, staged not shipped).
The win
- MX localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. +8.7 (74.0 → 82.7, native-order held-out board). The first genuinely-new localelocaleThe combination of language and country an address comes from. en-US and fr-FR are the locales Mailwoman ships weights for. 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. — 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.' now parsesaddress 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. Mexican addresses (Spanish citylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. surfaces,
Privada/CallestreetsstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels.) meaningfully better than shipped. - CA neutral — v381 already parsesaddress 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. Canadian (US-order) addresses; CA adds 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.-provenance but no measurable gain. Ships free.
The guards (all PASS)
Golden 2pp gate (data/eval/golden/v0.1.2, channels-on, v385 vs shipped v381, same run):
| tag | v385 | shipped | Δ |
|---|---|---|---|
| exact-match | 24.2% (1105) | 24.2% (1104) | +1 row |
| localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. | 46.8 | 46.8 | flat |
| regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. | 78.1 | 78.6 | −0.5 |
| 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. | 97.3 | 97.3 | flat |
| streetstreetThe named linear feature along which house numbers are ordered. Decomposes into a name plus street affixes; one of the Tier 2 fine labels. | 15.3 | 15.3 | flat |
| house_number | 96.9 | 96.7 | +0.2 |
| 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. | 89.8 | 91.4 | −1.6 |
No tag > 2pp down → PASS. The one nick is country −1.6pp (220 vs 224 / 245 — small-N; recovered from the 2k probe's −2.0). The #1104 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. channel reacts to the new CA/MX surfaces. Sub-threshold and stated; the 4-row miss characterization (CA/MX-adjacent vs US/FR) is a tracked follow-up.
Gauntlet (eval gauntlet --candidate): regression 33/33 PASS; metamorphic INV 62/63, DIR 3/3, BAND 16/21 — identical known-xfail profile to shipped v381 (the 1 INV[comma-drop] xfail is the pre-existing FR Rue du Chevaleret #1101 case; the US comma-drop held). No new regression.
Autonomous decisions
- BR dropped (0% OA-lineage → license unclear;
numberfield isSN (CASA N)garbage). Deferred, not blocked. - NZ excluded — separate dead-tag problem (
dependent_localityunemittable in v381; see2026-07-18-night-postmortem.md). NZ is not in this overlay. - 2k → 8k escalation was gated on a netneural networkA model made of layers of simple numeric units whose connection strengths (weights) are learned from data. The transformer encoder at Mailwoman's core is a neural network.-positive 2k probe + a passing golden 2pp; the 8k recovered the 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. nick from −2.0 to −1.6.
To promote (operator)
- Materialize v385 as the
neural-weights-en-usmodelneural 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.' bundle (scripts/copy-weights.ts/ the card'sfiles_md5), bump the model cardmodel cardA JSON metadata file (model-card.json) shipped with each weights bundle. It declares the model version, lineage, label set, required inference channels (anchor, gazetteer), calibration data, and training provenance., append the evalevalRunning the model against a held-out golden dataset and computing per-component F1, exact-match, calibration, and resolved-coordinate error.-ledger row. npmrelease as v7.1.0 (package minor; first post-v7 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.') via the publish workflow.- Optional pre-promote: characterize the 4-row 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. miss; add a native-order render to the CA/MX golden board (the evalevalRunning the model against a held-out golden dataset and computing per-component F1, exact-match, calibration, and resolved-coordinate error.-direction closed-loop artifact caught this cycle).
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.' + artifacts staged (uncommitted): int8 on the ModalModalA cloud GPU platform (modal.com) where Mailwoman trains its neural models on NVIDIA A100 GPUs. Training runs are launched via scripts/modal/train_remote.py and typically complete in ~1 hour. volume /models/quantized/model-v385-latam8k-int8.onnx; recipe/config on branch feat/locale-expansion-nz-camx.