You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add support for Moldovan postal codes (4-digit, prefix MD- mandatory in Posta Moldovei usage) mapping to a regional classification. Like Albania and Montenegro, Eurostat does not currently publish a TERCET postal-code-to-NUTS file for Moldova. Moldova's national NUTS-style classification is maintained by the National Bureau of Statistics (NBS) under Order No. 4 / 2024 (codes MD1, MD11/MD12, MD111–MD115 + MD120), but it is not yet incorporated into Eurostat's NUTS-2024 correspondence tables (per the OpenCage candidate-countries note: "still missing… Moldova (MD), and Ukraine (UA)"). A practical implementation can ingest GeoNames' MD postal codes (1 753 rows covering ~30 raions including Transnistria) via the existing extra_sources mechanism with a static raion-name → MD11x/MD120 lookup table.
See Research analysis below for the format details, NUTS-availability probe, and the open questions before implementation can start.
Example Postal Codes
MD-2001 Chișinău (centre)
MD-2012 Chișinău
MD-2019 Chișinău
MD-3101 Bălți (mun.)
MD-3805 Comrat (Gagauzia)
MD-5201 Anenii Noi
MD-6501 Anenii Noi raion (rural)
MD-3300 Tiraspol (Transnistria, Posta Moldovei system)
MD-7301 Cahul
Posta Moldovei always renders codes as MD-NNNN City (with hyphen). Plain 4-digit form is also accepted but the prefix is the canonical written form.
Posta Moldovei: canonical line is MD-NNNN City; the prefix is part of the official format (unlike AL/ME). UPU's Moldova addressing template confirms MD- placement.
Google libaddressinput: returns {"key":"MD","fmt":"%N%n%O%n%A%nMD-%Z %C","zip":"\\d{4}","zipex":"2012,2019","postprefix":"MD-"} — postprefix is set to MD-, like FI/HR/LV/SE/SI.
Implementation note: the regex must accept both prefixed and bare forms (matching the project's defensive style for AT/BE/DE/HU), but normalised output should re-emit MD-NNNN to align with Posta Moldovei convention.
3. GISCO TERCET availability
Not currently published.
Probes of https://gisco-services.ec.europa.eu/tercet/NUTS-2024/pc{2024,2023}_MD_NUTS-2024_v1.0.zip return the SPA fallback (HTTP 200, content-type: text/html, 855 B, last-modified: 2021-01-13) — identical to AL/ME/BA non-existence signal. No real ZIP exists.
Reason: Moldova has no NUTS code in Eurostat's NUTS-2024 correspondence tables (per OpenCage blog, May 2024), so no TERCET mapping is possible upstream.
4. NUTS / statistical regions
Moldova has a national NBS classification modelled on NUTS but not (yet) endorsed in Eurostat's NUTS-2024:
Level
Code
Name
NUTS 1
MD1
Republic of Moldova
NUTS 2
MD11
Right bank of the Dniester
NUTS 2
MD12
Left bank of the Dniester (Transnistria)
NUTS 3
MD111
North Region (Nord)
NUTS 3
MD112
Centre Region (Centru)
NUTS 3
MD113
South Region (Sud)
NUTS 3
MD114
UTA Găgăuzia
NUTS 3
MD115
Municipality of Chișinău
NUTS 3
MD120
Administrative-territorial units on the left side of Nistru river
Sources: Wikipedia — NUTS of Moldova, NBS Moldova classifier (CUATM/CSRM). Eurostat regional yearbook explicitly states: "No regional data are available for Bosnia and Herzegovina, Georgia and the Republic of Moldova; national data are included when available."
Best: 1 753 rows, all 6 NBS regions covered, raion name in column 4. CC BY 4.0. Codes pre-formatted as MD-NNNN.
Posta Moldovei lookup
UI only, no bulk export / no documented API.
Google libaddressinput
Format/regex only, no enumerated list, no sub_keys.
OpenStreetMap
Sparse addr:postcode; some raion polygons but no code → polygon mapping.
Commercial (GeoPostcodes)
~1 200 codes, paid licence.
Transnistrian "Pridnestrovian Post"
Operates parallel handling but uses Moldovan MD-codes for international interchange; no separate code list.
6. Architecture fit
Identical to Albania (#54): GISCO loader will exhaust Strategy 1 + Strategy 2 silently. Two viable paths:
A. GISCO-only (current architecture): add MD to countries, accept zero entries until Eurostat publishes a TERCET MD file. Net result: pattern validation works, lookups return not_found. Aligned with how the project handles missing data.
B. Parallel loader via extra_source_urls (recommended): ingest GeoNames MD.zip with a transformer mapping raion name → MD11x / MD120 NUTS3 (one-time ~30-row static table). Reuses cache/DB/overwrite plumbing — no new top-level loader needed. Same pattern proposed for AL.
Option B yields ~1 750 high-quality lookups across all six NBS regions, including the Transnistrian left bank.
7. Open questions
Code system identity: should returned codes use the NBS MD1/MD11x/MD120 scheme (which is NUTS-shaped but not Eurostat-blessed) or a synthetic MD0/MD00/MD000 collapse pending Eurostat ratification? The UK/ITL code_system discriminator added in Implement support for UK postal codes and the ITL (International Territorial Level) #7 is the natural carrier (e.g. code_system: "NBS-MD").
Transnistria treatment: GeoNames raion names carry a Tr. suffix (Tiraspol Tr., Bender Tr., Camenca Tr., Dubasari Tr., etc.) for Posta Moldovei codes that physically deliver into the left bank. Map all such rows to MD120, or split between MD120 (Dniester left bank raions) and MD111-113 (right-bank parts of historically split raions like Anenii Noi / Dubăsari)? GeoNames lat/lon allows polygon-based disambiguation.
Raion-name normalisation: GeoNames uses Romanian without diacritics (Singerei, Hincesti, Calarasi); NBS uses diacritics (Sîngerei, Hîncești, Călărași). Need a normalised lookup table (~30 entries). Some rows have typos (Cantrmir / Canul / Uhnheni) — manual cleanup required.
Coverage threshold: 1 753 rows is rich (more than AL's 494) but is GeoNames-only acceptable, or should we wait for Eurostat to publish TERCET MD? Same governance question as AL.
Confidence tier: GeoNames + manual mapping should likely map to medium rather than high (which is reserved for GISCO-validated codes).
Prefix handling: enforce MD- in canonical output (matching Posta Moldovei) but accept bare 4-digit input — same pattern as the FR/DE prefix handling.
Country
Moldova (MD)
Request Type
New country support
Description
Add support for Moldovan postal codes (4-digit, prefix
MD-mandatory in Posta Moldovei usage) mapping to a regional classification. Like Albania and Montenegro, Eurostat does not currently publish a TERCET postal-code-to-NUTS file for Moldova. Moldova's national NUTS-style classification is maintained by the National Bureau of Statistics (NBS) under Order No. 4 / 2024 (codesMD1,MD11/MD12,MD111–MD115+MD120), but it is not yet incorporated into Eurostat's NUTS-2024 correspondence tables (per the OpenCage candidate-countries note: "still missing… Moldova (MD), and Ukraine (UA)"). A practical implementation can ingest GeoNames' MD postal codes (1 753 rows covering ~30 raions including Transnistria) via the existingextra_sourcesmechanism with a static raion-name →MD11x/MD120lookup table.See Research analysis below for the format details, NUTS-availability probe, and the open questions before implementation can start.
Example Postal Codes
Posta Moldovei always renders codes as
MD-NNNN City(with hyphen). Plain 4-digit form is also accepted but the prefix is the canonical written form.Data Sources
MD.zip— 1 753 rows with lat/lon and raion name (CC BY 4.0); codes stored asMD-NNNN\d{4}, examples2012, 2019,postprefix: "MD-"Research analysis (2026-04-29)
1. Postal code format
MD-prefix in source data, mandatory in Posta Moldovei output.MD-NNNNsystem in use since the 1990s post-Soviet reorganisation; replaced the legacy 6-digit Soviet277XXXblock.MD.zip(26 KB) = 1 753 rows covering ~30 distinct raion names (some duplicated withTr.suffix indicating Transnistria-administered raions). First-digit distribution:2×26,3×385,4×383,5×479,6×294,7×186.2012,MD-2012,MD 2012,MD2012. Soviet-era277012is dead.Suggested regex (project style):
2. Country prefix / addressing convention
MD-NNNN City; the prefix is part of the official format (unlike AL/ME). UPU's Moldova addressing template confirmsMD-placement.{"key":"MD","fmt":"%N%n%O%n%A%nMD-%Z %C","zip":"\\d{4}","zipex":"2012,2019","postprefix":"MD-"}—postprefixis set toMD-, like FI/HR/LV/SE/SI.countryInfo.txt:postalCodeFormat=MD-####, regex^MD-\d{4}$.MD-NNNNto align with Posta Moldovei convention.3. GISCO TERCET availability
Not currently published.
https://gisco-services.ec.europa.eu/tercet/NUTS-2024/pc{2024,2023}_MD_NUTS-2024_v1.0.zipreturn the SPA fallback (HTTP 200,content-type: text/html, 855 B,last-modified: 2021-01-13) — identical to AL/ME/BA non-existence signal. No real ZIP exists.4. NUTS / statistical regions
Moldova has a national NBS classification modelled on NUTS but not (yet) endorsed in Eurostat's NUTS-2024:
MD1MD11MD12MD111MD112MD113MD114MD115MD120Sources: Wikipedia — NUTS of Moldova, NBS Moldova classifier (CUATM/CSRM). Eurostat regional yearbook explicitly states: "No regional data are available for Bosnia and Herzegovina, Georgia and the Republic of Moldova; national data are included when available."
LAU level: 32 raions + 3 municipalities (Chișinău, Bălți, Bender) + UTA Găgăuzia + Transnistria localities = ~37 administrative units.
5. Alternative data sources
MD.zipMD-NNNN.sub_keys.addr:postcode; some raion polygons but no code → polygon mapping.6. Architecture fit
Identical to Albania (#54): GISCO loader will exhaust Strategy 1 + Strategy 2 silently. Two viable paths:
countries, accept zero entries until Eurostat publishes a TERCET MD file. Net result: pattern validation works, lookups returnnot_found. Aligned with how the project handles missing data.extra_source_urls(recommended): ingest GeoNamesMD.zipwith a transformer mapping raion name →MD11x/MD120NUTS3 (one-time ~30-row static table). Reuses cache/DB/overwrite plumbing — no new top-level loader needed. Same pattern proposed for AL.Option B yields ~1 750 high-quality lookups across all six NBS regions, including the Transnistrian left bank.
7. Open questions
MD1/MD11x/MD120scheme (which is NUTS-shaped but not Eurostat-blessed) or a syntheticMD0/MD00/MD000collapse pending Eurostat ratification? The UK/ITLcode_systemdiscriminator added in Implement support for UK postal codes and the ITL (International Territorial Level) #7 is the natural carrier (e.g.code_system: "NBS-MD").Tr.suffix (Tiraspol Tr.,Bender Tr.,Camenca Tr.,Dubasari Tr., etc.) for Posta Moldovei codes that physically deliver into the left bank. Map all such rows toMD120, or split betweenMD120(Dniester left bank raions) andMD111-113(right-bank parts of historically split raions like Anenii Noi / Dubăsari)? GeoNames lat/lon allows polygon-based disambiguation.Singerei,Hincesti,Calarasi); NBS uses diacritics (Sîngerei,Hîncești,Călărași). Need a normalised lookup table (~30 entries). Some rows have typos (Cantrmir/Canul/Uhnheni) — manual cleanup required.mediumrather thanhigh(which is reserved for GISCO-validated codes).MD-in canonical output (matching Posta Moldovei) but accept bare 4-digit input — same pattern as the FR/DE prefix handling.Sources