All sections

Platform Identifiers

Opaque or standardized ids — FIPS, ISO, DMA, publisher market codes — that reference a geometry through a versioned crosswalk but are never a geometry themselves. The central case for this catalogue's one recurring warning.

stableh34 min read
Source geometry
platform_geo_id

This page exists to state, as directly as possible, the rule the rest of this catalogue keeps returning to: an identifier is not a geometry. Every other family in this catalogue is a shape, or a rule for constructing one. This family is a label — a string or code that some system uses to refer to a geographic region — and the region it refers to is not encoded in the label at all. It is encoded in a boundary file, at a specific vintage, resolved through a specific crosswalk. Two systems can hold the identical identifier and disagree completely about what territory it covers, because the label never changes even when the boundary underneath it does.

Cardinality
A label, not a shape — one id per region per namespace
Governed by
Whichever platform or standard minted the id (FIPS, ISO, DMA, publisher)
Not a geometry
The id itself — the recurring warning this whole page exists to state
Converts via
No direct conversion; H3 resolves outward through a maintained, versioned crosswalk

Members

MemberWhat it isTypical namespace
Postal idA postal-service delivery-area codeZIP, ZCTA, national postcode
FIPS codeUS Census/federal region codeFIPS state/county code
ISO codeInternational country/subdivision codeISO 3166-1/2
DMA idNielsen media-market codeDMA code
Publisher idA media owner's own market labelPublisher-internal
Internal market identifierA company's own named regionInternal, often undocumented outside the owning team

Required metadata

FieldWhy it's required
Id namespaceThe same string can mean different things in different systems — a bare "501" is meaningless without knowing which namespace produced it
Boundary vintageThe version of the boundary set the id was minted against — this is what actually determines the geometry, not the id itself
Crosswalk sourceThe specific mapping table or service used to resolve the id to a boundary, since two crosswalks built from different vintages will disagree

Common risks

An identifier is a pointer, not a payload

Resolving a platform identifier to a geometry requires exactly three things: the namespace it belongs to, the vintage of the boundary set it was minted against, and a crosswalk that performs that specific resolution. Skip any one of the three and the "geometry" produced is a guess, not a lookup — this is true even when the id itself never changes, because the boundary underneath it can move without the id being reissued.

Namespace ambiguity is the most common failure: two vendors' "market 12" are different regions, and nothing about the string "12" signals which vendor's scheme is in force — ingesting an id without recording its source namespace makes it silently ambiguous the moment a second data source enters the pipeline. Vintage mismatch compounds this: even within one namespace, an id assigned against a 2019 boundary set and resolved against a 2024 crosswalk can resolve to a different polygon, because DMA and postal boundaries specifically are redrawn on cycles far shorter than most systems' assumed "this never changes" treatment of a region code. Unmatched ids dropping silently is the operational failure mode: a join between an id-keyed dataset and a crosswalk table that fails to match — because of a vintage gap, a namespace collision, or a simple typo — commonly drops the unmatched rows rather than raising an error, which understates whatever metric is being computed with no visible signal that anything went wrong. Platform-native-ids-only constraints are related but distinct: some platforms accept no polygon or coordinate input at all and require everything expressed as one of their own ids, making a versioned crosswalk to that namespace the only way in — one that must be maintained continuously as the platform revises its boundary definitions, on its own schedule, invisible to the caller unless the platform documents it.

How it converts to H3

Because a platform identifier is a reference rather than a shape, there is no direct id-to-H3 polyfill — the conversion runs in the opposite direction, from H3 to the platform's id space, through a maintained crosswalk. See H3 to platform-native geography for how the crosswalk is built and versioned, how unmatched cells are reported rather than dropped, and how precision loss is quantified when a platform's id granularity is coarser than the H3 resolution expressed. Where the underlying region is available as an actual polygon, treat it as an administrative boundary instead and skip id resolution entirely — the polygon is strictly more information than any id that merely points at it.

Edge cases affecting this page
  • - No polygons/coordinates — everything must be crosswalked to platform IDs, losing sub-unit precision.
  • - Admin/postal/DMA boundaries change; using an old vintage misassigns cells.
  • - When an admin/postal boundary source updates, ad platforms and the advertiser's own crosswalk do not necessarily update on the same date; targeting and reporting can briefly use different boundary vintages for the same campaign.