Why not just use Google's API?
Google's Geocoding API is the default choice for 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.. It is fast, globally comprehensive, and returns results in milliseconds. For many applications, calling Google is the right move. For applications that need to own their address data, audit their results, or operate at scale, it is the expensive kind of cheap.
What you get
Google's Geocoding API converts an address string into a latitude/longitude, a formatted address, and a set of address components (street numberhouse numberThe numeric or alphanumeric identifier of a building on a street. Mailwoman's house_number component; its position relative to the street name flips between locales., route, localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy., administrative area, 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., postal code). The API does parsingaddress 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., resolving, and formatting in a single call. There is no separate parser or gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture. — Google's 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.' handles everything.
Pricing (as of 2026)
| 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. | Cost per 1,000 requests | Monthly free quota |
|---|---|---|
| Standard | $5.00 | $200 credit (~40K requests) |
| Premium | Negotiated | Higher quota |
At $5/1K requests, 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. 1 million addresses per month costs $5,000. That is not a large line item for a funded startup. It becomes material at 10M+ requests per month, where the annual cost crosses into six figures.
Coverage
Google claims 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. in 250+ countries and territories. Quality varies dramatically by regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality.:
| RegionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. type | Quality |
|---|---|
| US, Western Europe, Japan, Australia | Excellent — precise to 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. or building entrance |
| India, Brazil, Southeast Asia | Good — municipalitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. or neighborhood level, not building-level |
| Sub-Saharan Africa, Central Asia | Variable — regionregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. or localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. level, significant gaps in rural areas |
The uneven 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 not Google's fault — it reflects the quality of the underlying data sources in each 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.. But it means the API's "global" labelcomponent tagOne of the 33 labels in Mailwoman's address schema — street, locality, region, postcode, house_number, unit, po_box, country, venue, intersection, and others. Each parsed span carries exactly one component tag. masks significant regional variation.
What you give up
You don't own the results
Google's terms of service prohibit storing 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. results beyond 30 days. You can cache results temporarily, but you cannot build a database of geocoded addresses from Google's output. Every time you need to geocode the same address, you pay again.
This matters for applications that process the same addresses repeatedly:
- A logistics company that geocodes the same 10,000 delivery addresses every day.
- A real estate platform that shows the same 50,000 property locations to every visitor.
- A government agency that maintains an address registry updated quarterly.
In each case, the addresses are stable. The 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. should be a one-time cost. Google's terms make it recurring.
You can't audit correctness
When Google returns a geocode, you get a confidence score (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., range-interpolated, geometric center, approximate). But you cannot inspect how Google arrived at the result. If a specific address consistently geocodes to the wrong building, you cannot:
- Trace which data source produced the error.
- Correct it in Google's database (you can report it, but correction is not guaranteed).
- Add a local override for your own use case.
You are renting a black box. When the black box is wrong, your only option is to handle the error downstream — escalate to manual review, accept the inaccuracy, or use a different provider for that address. You cannot fix the parser.
Your query data is Google's training data
Google's privacy policy does not guarantee that your 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. queries are not used to improve Google's services. For most applications, this is acceptable — address data is not sensitive in the way that medical records or financial transactions are. For applications that deal with protected addresses (domestic violence shelters, witness protection, military facilities), sending address queries to a third party is a privacy violation.
You are locked into Google's ontology
Google's address component types (route, sublocality, administrative_area_level_1, etc.) are Google's taxonomy. They do not always map cleanly to other address schemas:
| Google component | Mailwoman equivalent | Notes |
|---|---|---|
administrative_area_level_1 | region | US stateregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality., French région |
administrative_area_level_2 | subregion | US county, French département |
sublocality | dependent_locality | Neighborhood, boroughboroughAn administrative or historical division of a city — e.g. the five boroughs of New York City. May be postal, legal, or both, and complicates the locality hierarchy. |
route | street | 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 without number |
street_number | house_number | Building number |
If your application uses a different address 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.', you must translate Google's output into your schema. The translation is lossy — Google may return components that have no equivalent in your 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.', or omit components your 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.' considers required.
When Google's API is the right choice
Despite these limitations, Google's API is the right choice for:
- Prototypes and MVPs. You need 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. working today, not in six months. The API cost is negligible at prototype scale.
- One-shot batchbatch sizeHow many examples the model processes before each parameter update. Larger batches give smoother gradients but cost more memory; gradient accumulation simulates a big batch on a small GPU. processing. You have a fixed set of addresses to geocode once. The one-time cost is lower than building infrastructure.
- Global 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. without a data team. You do not have the resources to source and maintain gazetteersgazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture. for 100+ countries.
- Integration with Google Maps. If you are already rendering results on Google Maps, using Google's geocoder avoids coordinate-system mismatches.
For these use cases, the API's speed and 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. outweigh its lock-in costs.
When owning your parser is the right choice
Owning your parser is the right choice when:
- You geocode the same addresses repeatedly. A one-time 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. cost, cached locally, amortizes the infrastructure investment over time.
- You need auditable results. When correctness matters (delivery routing, emergency services, government compliance), being able to trace a geocode back to its source data is non-negotiable.
- You operate in regionsregionThe first-level administrative subdivision of a country — a US state, a French region, a province. The component between country and locality. where Google is weak. If a significant fraction of your addresses are in countries where Google's 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 at the localitylocalityThe city / town / settlement component of an address: a populated place sitting between region and neighbourhood in the hierarchy. level, a regional gazetteergazetteerA geographical index that maps place names and postcodes to real-world coordinates. Mailwoman uses a custom-built Who's On First (WOF) SQLite database as its gazetteer — the 'atlas' half of the grammar/atlas architecture. may outperform Google.
- You need a specific address 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.'. If your downstream systemsexpectation-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. use ISO 19160 address components or a custom schema, translating Google's components is a recurring development cost.
- You handle protected addresses. If privacy regulations or internal policy prohibit sending addresses to third-party APIs, you need an in-house solution.
Mailwoman targets the "own your parser" niche — an alternative for applications where Google's terms, pricing, or opacity make the API unsuitable, not a Google competitor.
See also
- The 90% trap — the economic argument for owning your parser
- The database fallacy — why even Google's database has gaps
- Why not use geocode.earth? — the open-source hosted alternative