By Ether DataRequest data sample
Interactive publication
Back to Geo-Interop KB

Edge-case catalogue

Every operational, geometric, global, hierarchy, platform, privacy, advertising, temporal, and data-quality edge case in geographic interoperability, each with detection and mitigation.

Entries
105 across 9 categories
Each entry carries
Detection · mitigation · conversions
On the taxonomy

This catalogue follows the source specification, which files several groups under one "edge-case" heading. Not all 105 are failure modes: the Advertising semantics group (physical presence, home/work location, lookback window, cross-device) are targeting concepts that change what a geometry means, not bugs; the Privacy group are constraints. They live here because each still alters a conversion's result and needs handling - read "case to account for," not "defect."

01

Geometry

13 CASES
Duplicate verticesConsecutive repeated coordinates (zero-length segments) in a ring can produce degenerate edges that break area and intersection calculations.OPENEmpty geometriesA feature with a null or zero-ring geometry (e.g. GEOMETRYCOLLECTION EMPTY, or coordinates: []) produces no cells and can silently vanish from an audience or trade-area union.OPENIncorrect ring winding orderGeoJSON requires exterior rings counter-clockwise and holes clockwise (right-hand rule); reversed winding flips interior/exterior for winding-sensitive fillers.OPENInvalid coordinate valuesNaN, Infinity, out-of-range (|lat|>90, |lng|>180), or null coordinate components crash or silently corrupt downstream H3 indexing.OPENMultiPolygon / multipartDisjoint parts (islands, exclaves) must all be filled; a single-ring assumption drops parts.OPENNarrow / sliver polygonsPolygons thinner than a cell can yield zero center-contained cells.OPENNested holesA hole containing an island (hole-in-hole-in-fill) violates simple-polygon assumptions; naive ring parity gets the interior/exterior classification backwards.OPENPolygon holesInterior rings (donuts) must be respected so cells inside a hole are excluded.OPENSelf-intersecting polygonBowtie/overlapping rings make area and containment undefined.OPENSimplified boundariesDouglas-Peucker-style simplification shifts the boundary, moving which cells qualify.OPENTiny polygonsPolygons much smaller than a cell may be missed or over-represented by a single cell.OPENTouching-only intersectionA cell that only shares a boundary point/edge (zero area) with the polygon.OPENUnclosed ringsA polygon ring whose first and last coordinates differ is not technically closed, causing GeoJSON-strict fillers to throw or silently miscompute area.OPEN
02

Global

12 CASES
Antimeridian (±180° meridian)Geometries crossing ±180° longitude wrap incorrectly, producing world-spanning artifacts when treated as planar.OPENCoastal boundary ambiguityLand/water boundary polygons vary by data vintage and mean-high-water definition; cells right at the coastline can flip land/water classification between sources.OPENDisputed territoriesAreas with contested sovereignty (e.g. Crimea, Kashmir, Western Sahara) may appear in different admin boundary sources assigned to different countries, causing double-counting or gaps in cross-vendor crosswalks.OPENEnclavesA region entirely surrounded by another region's territory (e.g. Lesotho in South Africa) can be mis-assigned to the surrounding region by centroid- or overlap-based admin joins.OPENExclavesA region's territory disconnected from its main body (e.g. Kaliningrad, Alaska) is geometrically a separate multipolygon part; overlap-max joins can attribute it to the surrounding region instead of its true owner.OPENGeodesic versus planar geometryBuffer, distance, and intersection operations computed on raw lat/lng as if it were a flat Cartesian plane diverge measurably from true great-circle geometry, worsening with distance and latitude.OPENH3 pentagons12 pentagon cells per resolution sit at icosahedron vertices; they break the 6-neighbour and regular-shape assumptions and have lower inscribed/circumscribed ratios.OPENIcosahedron face-crossing cellsCells spanning two icosahedron faces are distorted; edges are not symmetric and area varies.OPENOffshore islandsSmall islands belonging to a mainland admin region are geometrically disjoint (multipolygon parts) and can be dropped by fillers that assume a single contiguous ring.OPENPolar singularitiesNear the North/South poles, longitude lines converge to a point; planar buffering and equirectangular projections badly distort cell shape and area right at the pole cells.OPENWater-only cellsCells whose entire footprint is open water (ocean, large lake) carry no population/audience but can still be generated by a naive grid fill over a bounding box or coastal buffer.OPENWeb Mercator distortionWeb Mercator (EPSG:3857) inflates area and distance with latitude (infinite at the poles); using tile-based Mercator coordinates for area/radius math biases high-latitude markets.OPEN
03

Hierarchy

6 CASES
Compacted cell setsH3 compact() collapses a full set of same-resolution children into their common parent wherever complete; consumers unaware of compaction assume single-resolution set operations.OPENIncomplete child setsA set intended to represent 'all children of parent X at resolution N' is missing one or more children (e.g. due to an upstream filter or antimeridian/pentagon edge case), silently under-covering the parent's area.OPENLogical versus geometric containmentH3 parent/child cells do not nest geometrically the way quadtree tiles do — a child's boundary is not fully inside its parent's boundary in every case, so geometric point-in-polygon tests can disagree with the logical h3ToParent relationship.OPENMixed-resolution cell setA set mixing resolutions cannot be compared or subtracted without normalization.OPENParent + child in one setA parent and one of its descendants both present double-count the shared area.OPENResolution coercionForcing all inputs to a single target resolution (e.g. always coercing to r8) before comparison discards the finer detail of higher-resolution sources and introduces spurious precision on coarser ones.OPEN
04

Platform

11 CASES
Asynchronous boundary updatesWhen 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.OPENOptimized targeting expansionPlatforms with 'audience expansion' or 'optimized targeting' features silently deliver impressions outside the submitted geography/audience to hit performance goals, breaking the assumption that delivery equals the requested target.OPENPlatform accepts only native IDsNo polygons/coordinates — everything must be crosswalked to platform IDs, losing sub-unit precision.OPENPlatform coordinate roundingSome platform APIs round submitted lat/lng to a fixed decimal precision (e.g. 4 decimals ≈ 11 m) before executing a circle target, shifting the effective center from the intended one.OPENPlatform maximum radiusAd platforms often cap point-radius targeting at an upper bound (e.g. 50 km); a computed circumscribed or equal-area radius above that ceiling is silently clamped by the platform, shrinking actual coverage below what was reported.OPENPlatform minimum radiusA platform floor (e.g. 1 km) makes sub-floor cells un-executable as circles.OPENRadius rounding / incrementsPlatforms round radii to increments, changing coverage/overlap.OPENReporting at a coarser level than executionA platform executes targeting at a fine geography (e.g. H3 r8 or zip+4) but only reports delivery at a coarse level (e.g. DMA or state), masking whether the fine-grained target was actually honored.OPENUndocumented deduplicationSome ad platforms silently dedupe overlapping target geographies or audience segments across line items without disclosing the rule, causing reported vs. delivered reach to diverge in ways not explainable from inputs alone.OPENUnsupported exclusions'Include A minus B' cannot be expressed on platforms without exclusion support; the exclusion is silently dropped.OPENUnsupported polygon targetingSome platforms accept only circles or native geo IDs, not arbitrary polygons; a custom trade-area polygon submitted directly is rejected or silently approximated by the platform's own simplification.OPEN
05

Privacy

12 CASES
Consent-based precision reductionConsent state can coarsen or drop coordinates, changing cell assignment.OPENDeclared unit below the precise-location thresholdUS state privacy statutes define precise geolocation by a radius of 1,750–1,850 feet — an area of roughly 0.89–1.00 km². A declared targeting unit smaller than that circle (R8 at 0.737 km² does not clear it; R9 clearly not) is inside the statutory precise band regardless of how the unit was produced, so the resolution declaration itself carries a privacy claim, not only a precision claim.OPENDevice trajectory exposureOrdered high-resolution trajectories are re-identifying even when individual points are not.OPENDifferential privacy noise calibrationAdding calibrated noise (e.g. Laplace/Gaussian mechanism) to protect individual privacy in aggregate counts can distort small-cell counts enough to invert rank ordering between nearby cells if the privacy budget (epsilon) is set too aggressively for the use case.OPENHousehold-level targeting riskTargeting resolved down to a single-household granularity (e.g. one residential parcel or a cell containing exactly one dwelling) functions as individually addressable targeting even when labeled as 'neighborhood' targeting.OPENK-anonymity thresholdsReporting a cell-level metric is only privacy-safe if at least k individuals share that cell/attribute combination; enforcing k only on the cell dimension while ignoring cross-tabulation with other dimensions (age, segment) can still expose small groups.OPENMinimum aggregation windowReporting audience or visit counts over too short a time window (e.g. hourly) at fine spatial resolution can approach single-visit identifiability even if the raw count clears a k-anonymity floor for a longer window.OPENRegional privacy restrictionsLocation-data privacy law varies by jurisdiction (GDPR/ePrivacy in the EU, CCPA/CPRA in California, and others), so a pipeline using a single global minimum-aggregation or consent policy can be non-compliant in stricter regions or needlessly conservative in others.OPENResolution degradation policyWhen a cell fails a privacy check, the correct response is to roll it up to a coarser resolution and re-check, not to drop it or leave it at the original resolution with a suppressed value, either of which loses coverage or gives a false sense of the original grain.OPENSmall-cell re-identification riskA cell with very few observed individuals (e.g. 1-3) can be cross-referenced with public or other data sources to re-identify a specific person, even without any single field being personally identifiable on its own.OPENSparse-audience suppressionCells with too few users risk re-identification and must be suppressed or coarsened.OPENTemporal leakagePublishing a sequence of snapshots over time for the same fine-grained cell (even if each snapshot independently meets k-anonymity) can let an observer intersect the snapshots to re-identify an individual whose presence changed between them.OPEN
06

Measurement

5 CASES
Duplicate observationsThe same impression/visit counted multiple times inflates audience per cell.OPENExperiment arms finer than location errorAssigning experiment arms at a cell grain finer than the delivery channel's location error radius misplaces households across arms. With shared error the misassignment is non-differential (attenuates lift toward null, a power cost); when arms differ in IP-resolvability — multi-family share, carrier NAT, fixed-wireless penetration — the error becomes differential and biases the estimate, not just weakens it.OPENModal-cell centroid pile-upAssigning each probabilistic observation to its single most-likely cell piles ambiguous mass onto registry/population centroid cells, manufacturing false density at vendor fallback points.OPENShared-vendor crosswalk correlationMost platforms resolve IP to location through the same few vendors, so location reports from different platforms are correlated, not independent: cross-platform agreement is not corroboration, and every party can be wrong in the same direction at once. Requested-vs-executed provenance verifies the platform's own conversion step and passes the shared upstream lookup error through untouched.OPENVerified-location subset as targeting filterRestricting delivery to a curated subset of location-verified IPs while measuring against a full-population outcome (store sales) creates a denominator mismatch that dilutes measured lift by an unknowable share — and the subset is not neutral: location-stable IPs skew fixed-line, single-family, owner-occupied, deleting exactly the dense urban geography where fine-grain targeting has the most advantage over ZIP.OPEN
07

Advertising semantics

22 CASES
Bidstream truncationHigh-volume bidstream feeds often truncate or sample records under load, and truncated records can silently drop the geo field entirely or truncate coordinate precision, biasing which impressions are geo-resolvable.OPENCarrier NAT / multi-family IP poolingIn high multi-family-unit markets and behind carrier-grade NAT, many households share one public IP or egress point, so one lookup result stands in for households spread across a wide area — and the shared point is often far from any of them. Fixed-wireless (5G) home internet adds drift: the household keeps its service while its IP-derived location moves between carrier egress points over time.OPENCorridor boundary oscillationA path skimming a cell edge produces a jagged, duplicated cell sequence.OPENCross-device location stitchingLocation histories merged across a household's or individual's multiple devices via probabilistic ID-graph stitching can double-count visits or attribute one device's location to another device incorrectly, inflating cell-level audience counts.OPENDeclared resolution exceeds input accuracyA platform declares support for a cell resolution finer than its location input can carry: IP geolocation's published best-case accuracy radius (~5 km) exceeds the equal-area radius of an R6 cell (~3.4 km), so an R6-or-finer declaration on IP-derived geography is a claim the input cannot honor. R5 (~9 km) is the finest defensible declaration from IP alone.OPENDestination interestPredictive 'likely to visit X' destination-interest scores are probabilistic, not observed; treating the resulting audience as equivalent to a confirmed-visitor segment overstates targeting precision.OPENExcluded-area leakageA requested exclusion zone (e.g. exclude a competitor's trade area or a control market) can still receive delivery if the platform's exclusion granularity is coarser than the requested boundary, or exclusion isn't supported and is silently dropped.OPENFrequency across overlapping targetsWhen two or more targeted geographies overlap (e.g. a store radius nested inside a DMA target), a user in the overlap can receive frequency from both line items, inflating true frequency and reach reporting per user.OPENGPS noise / boundary oscillationNoisy fixes near a boundary flip cells back and forth, inflating counts.OPENGPS-derived location accuracyA GPS fix's reported horizontal accuracy (often tens to hundreds of meters, worse indoors/urban canyon) is frequently discarded downstream, letting a low-accuracy fix be indexed at a resolution finer than it can support.OPENHome location inferenceInferred 'home' location (typically the most common overnight device location over N days) can be wrong for shared devices, frequent travelers, or short observation windows, misassigning the household cell.OPENIP-derived locationIP geolocation is coarse and often centroid-biased; it is not physical presence, and it is not a point — it is a disk at a stated confidence.OPENLocation confidence scoringVendors attach a confidence score to location signals, but many downstream pipelines drop it and treat every observation as equally trustworthy, letting low-confidence noise dilute high-confidence signal in aggregate cell counts.OPENLocation interest versus presence'Location interest' segments (built from search, content consumption, or app category signals about a place) are conflated with physical visitation, but a user searching for a location has not necessarily been there.OPENLookback window sensitivityAudience size and composition for a 'visited store X' segment change substantially with the chosen lookback window (7 vs. 30 vs. 90 days); an undocumented or inconsistent window makes cross-campaign comparisons invalid.OPENMixed-provenance channel bundleA multi-channel activation (e.g. CTV + DOOH + mobile) mixes location provenances of very different quality; because any channel's exposure puts a household in the treatment arm, the bundle's assignment integrity is set by the worst-resolving channel, not the average — one contaminated stream contaminates the arm.OPENPhysical presenceA location signal claiming 'physical presence' may actually derive from a lower-confidence source (Wi-Fi, IP, declared) that has not been verified against a GPS dwell; treating all presence signals as equally reliable overstates confidence.OPENPooled location sources in delivery logsBid-stream location carries a per-impression provenance flag (e.g. OpenRTB device.geo.type: GPS vs IP-derived vs user-declared), but delivery logs are routinely aggregated across it, pooling a tight error distribution with a wide one and hiding the displacement that segmenting would reveal for free.OPENPublisher-declared locationLocation supplied by the publisher/app (e.g. a self-reported profile city or content geography) rather than device-observed, is far coarser and more gameable than GPS or IP-derived signals, but is often merged into the same location field without a source tag.OPENRecent presence'Recent presence' segments depend entirely on the chosen lookback window; a location visit from 90 days ago counted as 'recent' in a stale segment misrepresents current audience composition.OPENTreatment/control contaminationIn a geo-lift experiment, cells assigned to control can still receive treatment exposure via platform audience expansion, ad-adjacent delivery, or a resident's movement into a treatment cell, biasing the measured lift toward null.OPENWork location inferenceInferred 'work' location (typical daytime weekday device location) misfires for remote/hybrid workers, gig workers, and multi-site employees, assigning a work cell that doesn't reflect actual employment geography.OPEN
08

Temporal

10 CASES
Administrative boundary changesMunicipal annexations, incorporations, and county line adjustments change which admin polygon a location belongs to over time; a crosswalk built on one vintage misattributes cells for periods before or after the change.OPENCrosswalk vintage arm-flipGeolocation databases update weekly; a network block whose location estimate crosses an experiment arm boundary between releases flips every device behind it between arms mid-flight — differential contamination no deattenuation corrects.OPENDMA redefinitionMedia markets are periodically redrawn; crosswalks must be pinned to a vintage.OPENPostal boundary changesZIP/ZCTA definitions drift between vintages.OPENStale boundariesAdmin/postal/DMA boundaries change; using an old vintage misassigns cells.OPENStore openings and closuresA store location list used for trade-area or catchment geometry goes stale as locations open, close, or relocate; targeting or measuring against a closed store's geometry wastes spend and biases lift measurement toward zero.OPENTemporary event zonesAd-hoc geofences for a limited-duration event (a festival, stadium concert, disaster-response zone) exist only for a narrow time window; applying that geography outside its valid window either misses the event or wrongly attributes unrelated activity to it.OPENTime-dependent audience membershipAudience membership defined by location visitation is inherently time-bound (a person who visited last month may not still be a customer); treating an audience segment as static after its build date silently stales the targeting/measurement population.OPENVersion mismatch between execution and reportingThe H3/boundary/crosswalk version active at campaign execution time can differ from the version active when the reporting/measurement query runs later, causing the same nominal geography to resolve to different actual cells between planning and results.OPENWeather polygonsWeather alert/impact polygons (storm tracks, flood zones, air-quality advisories) are issued, updated, and retracted on an hourly-to-sub-hourly cadence; using a cached or stale version misrepresents current conditions for weather-triggered targeting or reporting.OPEN
09

Data quality

14 CASES
Accuracy-radius attritionGeolocation vendors ship a per-record error bar (accuracy radius, and in some products per-field confidence factors), but downstream ad-serving and reporting schemas carry only the point or cell, so the uncertainty is discarded at the first hop and delivered geography arrives dressed as exact.OPENAxis-order reversal (lat/lng swap)Coordinates supplied as [lat,lng] where [lng,lat] is expected place geometry in the wrong hemisphere.OPENCoastal / mixed pixelsPixels straddling land/water mislabel coastal cells.OPENConfidence-convention mismatchA ~67%-confidence radius and a CEP50 radius differ enough that pooling them unconverted yields containment estimates wrong by a factor of two or more.OPENDuplicated region IDsThe same admin id mapping to multiple polygons (data error) breaks partition assumptions.OPENGeocoding uncertaintyAddress-to-point geocoding carries a precision tier (rooftop, street, ZIP centroid) that is often dropped downstream; a ZIP-centroid-precision point treated as rooftop-precision misassigns the cell.OPENIncomplete geometryA polygon with fewer than 4 coordinates (or a ring truncated mid-transfer) is not a valid closed shape and will fail or misbehave in a filler.OPENMissing CRS declarationA geometry file with no CRS metadata forces an assumption (usually WGS84); if the true CRS differs, every downstream cell assignment is wrong with no detection signal.OPENMissing polygonsA source dataset silently omits polygons for some regions (e.g. a boundary file missing a newly incorporated municipality), leaving gaps in cell coverage with no explicit null marker.OPENRaster no-data valuesSentinel no-data pixels (e.g. -9999) corrupt aggregates if not masked.OPENRaster/cell resolution mismatchA coarse raster over fine cells yields false precision; fine raster over coarse cells needs area weighting.OPENRounded / truncated coordinatesBidstream coordinates rounded to 2–3 decimals snap to a coarse grid, biasing cell assignment.OPENWrong CRS assumedCoordinates delivered in a projected or regional CRS (e.g. State Plane, UTM) but consumed as if they were WGS84 lat/lng place points thousands of kilometers off with no error thrown.OPENZero-island coordinatesNull or unparsed lat/lng fields defaulting to (0,0) plot as real points in the Gulf of Guinea ('Null Island'), silently injecting fake density into that cell.OPEN