Blog/

Building footprint polygons vs OpenStreetMap coverage gaps

Every GIS team that has gone looking for a free footprint layer ends up at OpenStreetMap eventually. It's open, it's already in GeoJSON, and for some cities it looks genuinely solid: clean rectangles, roof outlines that match the parcel, even building type tags filled in. Then you pan over to a county forty miles away and the layer goes nearly blank, or worse, it's full of footprints traced from ten-year-old imagery that no longer match what's on the ground.

That unevenness comes directly from how the data gets made.

Why OSM footprint coverage varies so much

OpenStreetMap's building layer is the sum of whatever volunteers chose to trace, in whatever order they chose to trace it. A city that hosted a mapathon, or that has an active local chapter, or that attracted attention during a disaster-response import, will have dense, reasonably current coverage. A county with none of that history will have whatever a handful of individual contributors got around to, which in practice often means the town center and not much else. Rural parcels, industrial yards, and newer subdivisions are the places this shows up hardest, because nobody had a reason to go trace them by hand.

Vintage is a second problem layered on top of coverage. A polygon added in 2016 off whatever imagery was available in the editor at the time doesn't move when a structure gets demolished, expanded, or rebuilt. OSM has no refresh cycle. A footprint sits there until someone notices it's wrong and fixes it, which for low-traffic areas can mean never. So you end up with a layer where the geometry might be five years old in one quadrant and five months old in the next, with no attribute telling you which is which.

Digitizing standards drift too. One contributor squares off a roofline to match the building outline; another traces the visible roof overhang, which sits a meter or two outside the actual wall. Multiply that across thousands of individual mappers and you get a layer where polygon vertex placement, square footage, and even whether attached garages get their own footprint or get merged into the main structure, all vary depending on who drew it.

What that patchwork costs a base-layer team

None of this matters much if you're spot-checking a single block. It matters a great deal if building footprints are supposed to sit underneath assessor records, utility connections, flood-risk modeling, or solar-potential scoring at the county or state level. A base layer that's reliable in the parts of the map people happened to care about, and thin or stale everywhere else, pushes the coverage problem downstream onto every analytic that depends on it. Teams end up running a coverage audit before every project just to find out which counties are usable this quarter, then patching the gaps with hand digitizing, which is slow and still only as current as the day someone draws it.

Before leaning on OSM as a base layer, it's worth actually checking your footprint, not assuming coverage based on population. Pull a sample of ten to twenty random tiles across your service area, including the rural and low-density ones, and compare footprint density and date tags against current imagery. If half the tiles are missing structures or clearly out of date, that's not a data problem you fix with a QA pass. It's a sign the dataset was never built to be a uniform base layer in the first place, because no one was mapping it with that goal.

The alternative is a footprint layer generated the same way across the entire area at once, from the same imagery, on the same cadence, rather than assembled one contributor's trace at a time. Building Footprints vectorizes every structure in a chosen area into polygons from VHR satellite or aerial imagery, delivered as GeoJSON or Shapefile and refreshed annually, so coverage doesn't depend on who happened to be mapping your county last.

If patchy OSM coverage is the thing standing between you and a usable base layer, it's worth seeing what a full-area annual footprint pass looks like for your region.

← Back to the blog