Catchments
Profile the population around any point with up to four distance or drive-time rings, area-weighted from the hex grid.
A catchment describes who lives and works around a point. Where a trade area models where a store’s customers come from, a catchment simply draws rings and summarizes everything inside them. It is the standard first look at a site and the table landlords and brokers expect.
Inputs
| Input | Description |
|---|---|
lng, lat |
Center of the rings |
rings |
1 to 4 positive values, e.g. [0.5, 1, 3] |
unit |
km, mi or min |
Each ring’s radius must be at most 50 km after conversion. In the app: Site selection → Catchment. Via the API: POST /api/v1/sdss/catchment (reference). Each run counts as one analysis.
Ring units
| Unit | Radius |
|---|---|
km |
the value in kilometers |
mi |
value × 1.609344 km |
min |
value × city average speed ÷ 60 |
About drive-time rings
Drive-time rings in MapDove are a speed-based radius approximation, not a road-network isochrone. Minutes are converted to a straight-line radius using the average driving speed of the city containing the point:
| City | Average speed | 10-minute ring radius |
|---|---|---|
| Austin | 42 km/h | 7.0 km (4.3 mi) |
| Houston | 45 km/h | 7.5 km (4.7 mi) |
| Phoenix | 50 km/h | 8.3 km (5.2 mi) |
| Miami | 35 km/h | 5.8 km (3.6 mi) |
| Dubai | 55 km/h | 9.2 km |
The result is a circle. It does not account for the road network, highways, bridges, water bodies, congestion by time of day or turn restrictions. In practice a true 10-minute isochrone is elongated along highways and clipped by barriers; the approximation over-states reach across a bay or river and under-states it along a freeway. Use minute rings for consistent comparisons between candidates in the same city, and commission a network-based drive-time study before a final commitment.
What each ring reports
| Field | How it is computed |
|---|---|
label, radius_km, area_km2 |
Ring label (e.g. "1 mi"), radius and area π·r² |
population, households, daytime_pop |
Area-weighted sums over intersecting hexes |
median_income, median_age, pct_college, pct_family, growth_rate |
Population-weighted averages (using area-weighted population) |
traffic_index, rent_index |
Simple averages over intersecting hexes |
segments |
Population and share by lifestyle segment |
places_by_category |
Count of places inside the ring, by category |
geometry |
GeoJSON polygon of the ring |
Rings are cumulative discs, not donuts: a 3-mile ring includes the population of the 1-mile ring. Subtract to get the band between them.
Area-weighted aggregation
Hex cells rarely sit entirely inside a ring. For each hex h that intersects ring R, MapDove computes the fraction of the hex’s area inside the ring:
f_h = min(1, |h ∩ R| / |h|)
Counts are apportioned by that fraction, and averages are weighted by the apportioned population:
population_R = Σ_h population_h · f_h
income_R = Σ_h income_h · population_h · f_h / Σ_h population_h · f_h
|h ∩ R|— area of the part of hexhinside the ring,|h|— area of the hex (about 0.8 km²).- This assumes people are spread evenly within each hex — the usual assumption for areal interpolation.
Income in a ring is therefore a population-weighted average of hex medians, not a true median of all households in the ring. Over a few hexes the two are close; treat it as a representative central value. The full set of formulas is in Methodology.
Tips
- Pick rings that match the category. Convenience: 0.5/1/2 mi or 5/10 min. Destination formats: 3/5/10 mi or 10/20 min.
- Compare daytime vs resident population. A ring with
daytime_popfar abovepopulationis a work or tourism district: weekday lunch, weak evenings. - Read the competitive context.
places_by_categoryis a quick saturation check before you open the full Huff model. - Small rings near the edge of the study area may cover few hexes; very large rings can extend beyond the modeled city and will under-count population there.
All demographics are synthetic (Demo data).