Reduce attribution errors with high-quality building footprint data. Incredibly accurate POI footprint data offers a clear picture on the boundary of a place, so you can perform the most accurate analysis.
You need data you can trust and rely on. We apply complex engineering and human verification to ensure accuracy of all POIs in our datasets.Learn more about SafeGraph Geometry
Our accurate polygons allow you to reduce errors and more precisely attribute consumer visits to a specific place. Human verified building footprints are far superior to using a centroid radius, allowing you to determine who actually enters a POI versus who simply walks nearby.Read our guide to visit attribution
We give you metadata so you can easily distinguish the spatial hierarchy and relationship between different places. With clear polygon hierarchies that have parent-child relationships, you’ll gain detailed insights about the POIs you’re analyzing.Explore the data schema
Explore precision polygons for global places.
A polygon is a GIS feature that encloses a geographical object to represent a physical boundary in the real-world. A polygon, or building footprint, provides a two-dimensional representation of a real-world location on a map, such as a park, building, parking lot, or pretty much anything with a defined perimeter.
These polygons - especially when paired with other consumer behavior information like mobility and spending data - offer clear insights into a building’s footprint, which can be used to identify foot traffic at a location, clearly define a catchment area, and much more.
Like all of our data, the cost of Geometry depends on the amount of rows, columns, and frequency of delivery you request. Contact our sales team to learn about enterprise pricing.
SafeGraph issues updates to Geometry once per month, which is much more frequently than other POI vendors, who may update once every 3-6 months. We can do this because we work with more sources of data and are much more efficient at combining those sources. During each month, some subset of our sources will send us their updates, and we ensure that we onboard and integrate those changes quickly and easily.
This enables us to quickly reflect store openings and closings in our POI database. The time between a store opening/closing and being reflected in our POI database is approximately equal to the time that the store update is seen by one of our sources and the time it takes SafeGraph to reflect this in our data. The latter of these two is typically within the month, which is very fast compared to other providers, which might be within 3 months. The former of these two is hard to predict - but we do work with sources that generally receive updates very quickly.
We identify spatial relationships (what we refer to as “spatial hierarchy”) by measuring polygon overlap. For each pair of overlapping polygons, if the larger polygon contains at least 80% of the smaller polygon, and if the larger polygon is also of a particular POI category, then we mark it as the “parent” of the smaller polygon. It’s important to restrict parent POI candidates to a specific set of categories or brands so that we’re not solely reliant on polygon precision to determine spatial hierarchy. For example, we want airports to be parents when overlapping other POIs, but we generally don’t want cafes to be parents if overlap exists and the cafe happens to be the larger of the two polygons. See our Geometry docs for a complete list of POI categories that are eligible parents. We flag these relationships in our geometry data by setting the “parent_placekey” of the smaller POI equal to the “placekey” of the larger, encompassing POI. We colloquially refer to the larger, containing POI as the "parent" and the smaller POI as the "child."
Similar to determining eligible parent POIs, we rely on categories to distinguish enclosing vs. non-enclosing spatial hierarchy relationships. See our Geometry docs for a complete breakdown of the spatial hierarchy relationships we treat as “enclosing.”
Although simple, the enclosed column is super important fuel for our visits algorithm. Due to GPS drift within major structures, when 'enclosed' = “true,” we exclude visits to that POI and only attribute visits to the parent POI. We pride ourselves in archiving facts, so we would rather not attribute visits at all than make rash assumptions.