GIS Tools

Language

Made withfor the GIS community

Coverage Gap Finder

Identify areas not covered by service radii

Analysis

Load Coverage Polygons

Load Study Area

Legend

Study Area
Coverage
Gap (Not Covered)

About Coverage Gap Analysis

  • β€’ Load service area polygons (e.g., school districts, delivery zones)
  • β€’ Define a study area boundary to analyze
  • β€’ Identifies areas not covered by any service polygon
  • β€’ Useful for finding underserved areas

What Is a Coverage Gap Finder?

A coverage gap finder is a spatial analysis tool that identifies the areas of interest not covered by the service radii, catchments or footprints of a set of facilities. Instead of describing where your facilities reach, it describes where they do not. Given a set of clinics plus a regional boundary, the coverage gap finder returns the polygons of the region that lie outside every clinic's catchment β€” the "medical deserts" nobody is serving. Given a set of bus stops plus a city limit, it returns the residential streets outside walking range of any stop. Given a set of fire stations plus a county, it returns the blocks where response time would exceed the agreed standard.

The Coverage Gap Finder tool on gis.tools takes a set of facility catchment polygons (or facility points plus a buffer radius) and a region-of-interest polygon, and returns the geometric difference β€” the uncovered area. People search for "coverage gap analysis gis", "service area gap", "underserved area mapping", "coverage hole finder" and "catchment gap identification" because identifying gaps is one of the most decision-relevant outputs of any accessibility or facility-location analysis.

Gap analysis flips the usual framing of service-area work. Where catchment analysis measures reach, gap analysis measures absence. Both are necessary, and a good planner presents them together so decision makers see both sides of the coin.

How Coverage Gap Detection Works

The core operation is a vector erase: subtract the union of all facility catchments from the region of interest.

Step 1: Union the Catchments

The tool unions every input catchment polygon into a single multipolygon representing the total serviced area. Overlapping catchments merge into one contiguous region. The result is the "reached" footprint.

Step 2: Clip to the Region of Interest

The region of interest (country, city, county, park, planning zone) defines the universe of places the analysis cares about. The unioned catchments are clipped to this region to remove any portion of the catchment that extends outside the study area.

Step 3: Compute the Difference

The gap polygon is the region of interest minus the reached footprint. This is a standard vector erase operation backed by JTS, GEOS, Turf.js or Shapely. The output can be a single multipolygon or split into individual contiguous gap regions.

Step 4: Optional Enrichment

For each gap polygon, compute area, perimeter, population (via zonal statistics against a population raster), distance to the nearest facility and any other relevant attribute. Enrichment is what turns "these are gaps" into "these gaps affect 12000 people in three distinct clusters".

Threshold-Based vs Binary Gaps

Binary gaps are hard-edged: a location is either inside some catchment or outside. Threshold-based gap analysis asks softer questions: where does the nearest facility exceed a 15-minute drive? where is coverage provided by fewer than two facilities? These require a distance or count raster rather than a simple vector difference.

Key Parameters and Options

Facility Catchments

A polygon layer of service areas, one polygon per facility. If you only have facility points, the tool can auto-buffer them or run Catchment Analysis first.

Region of Interest

A single polygon (or multipolygon) defining the geographic scope of the gap analysis. Countries, counties, cities, parks and custom planning polygons all work.

Minimum Gap Size

Very small slivers from topology artifacts are typically not real coverage gaps. The tool filters out gap polygons below a minimum area threshold (e.g. 1 hectare, 1 km2).

Population Raster

An optional population density raster used to enrich each gap polygon with the count of people affected by the gap.

Distance Enrichment

For each gap polygon, compute the distance from its centroid (or worst-case point) to the nearest facility. This distinguishes marginal gaps (barely outside the catchment) from severe gaps (far from any facility).

Output Format

GeoJSON, KML, Shapefile or GeoPackage. The output can be a single multipolygon or a FeatureCollection of individual gap polygons with per-gap statistics.

Practical Applications

Healthcare Deserts

A state health department wants to identify "medical deserts" β€” populated areas more than 30 minutes from the nearest hospital. The analysis unions 30-minute drive-time catchments around all hospitals, subtracts from the state boundary, and enriches each gap with population from a GHSL or WorldPop raster. Gap polygons with populations above 5000 are flagged for new clinic priority.

Transit Coverage Gaps

A city transit agency computes 400 m walk catchments around every bus stop and subtracts from the residential land-use polygon. The resulting gap polygons are the residential areas outside walking range of any stop β€” prime targets for new bus stops or micro-transit routes.

Emergency Shelter Access

Disaster managers preparing for flood evacuations identify walking-distance gaps around emergency shelters. Gap polygons with high resident populations drive mobile shelter deployments or targeted evacuation outreach.

Retail White Space Analysis

A retail chain with 40 existing stores computes trade area polygons around each location and subtracts them from a high-income zip code layer. Remaining polygons are "white space" β€” high-value territory with no store presence and good expansion potential.

EV Charging Network Planning

A national charging operator analyses 5-mile highway corridor gaps by subtracting existing charger catchments from major highway buffers. Gap polygons along interstates drive the next wave of station deployments to achieve seamless cross-country coverage.

Fire and EMS Response

Public safety planners compute drive-time catchments at NFPA compliance thresholds around each station and identify any populated gaps. Gap polygons become the justification for new stations or apparatus redeployment.

Cellular and Broadband Coverage

Telecom planners subtract cell tower or fiber footprint polygons from a market boundary to identify coverage gaps. Enriching with household counts prioritises the gaps that matter commercially.

School Accessibility

Education planners verify that every household lies within a policy-mandated distance of an appropriate school by unioning school catchments and subtracting from the residential polygon. Gaps feed school board decisions about new schools, bus routes or zone redraws.

Step-by-Step Workflow in gis.tools

  1. Open the Coverage Gap Finder page on gis.tools.
  2. Drag the facility catchment polygon layer into the page. If you only have facility points, first use Catchment Analysis or the GIS Buffer Tool to produce catchments.
  3. Drag the region-of-interest polygon into the ROI slot.
  4. The tool unions the catchments, clips to the ROI and computes the difference in the browser using Turf.js.
  5. Set a minimum gap area threshold to filter out slivers.
  6. Optionally drag in a population raster for per-gap population enrichment.
  7. Click Analyze. The resulting gap polygons render on the map, styled by size or population.
  8. Inspect individual gaps, sort by population or distance-to-facility and prioritise the top candidates.
  9. Export the gap layer as GeoJSON, KML or Shapefile for reporting and decision support.

Worked Example: Rural Clinic Deserts in a Mountain State

A state health department wants to identify rural areas more than 30 minutes by road from the nearest hospital. You load 22 hospital catchments (already computed as 30-minute drive-time isochrones) and the state boundary polygon into Coverage Gap Finder. You set a minimum gap area of 10 km2 to filter out minor slivers along the edges. The tool unions the catchments, clips to the state and subtracts. The result is 14 gap polygons covering about 12% of the state's land area. You drag in a WorldPop 100 m raster and the tool enriches each polygon with population. Three polygons have populations above 3000 β€” all mountain communities in the western counties. You prioritise these three for new rural health outposts and document the analysis in a grant proposal to the federal rural health program.

Common Pitfalls and Gotchas

  • Topology errors in input polygons can produce sliver gaps that are not real. Clean the input with Geometry Repair and Topology Helpers first.
  • Forgetting to clip to the ROI produces gap polygons that extend beyond the study area.
  • Very small minimum gap thresholds leave a confetti of meaningless slivers in the output.
  • Unioning overlapping catchments requires valid non-self-intersecting geometries; check with GeoJSON Validator & Fixer.
  • Catchments in different CRSes from the ROI produce wrong results β€” reproject to a common CRS first.
  • Population raster must cover the full ROI extent; edge areas without population data bias the enrichment.
  • MAUP (Modifiable Areal Unit Problem) still applies: changing the ROI boundary changes the gap statistics.
  • A gap that is geographically large but uninhabited (desert, mountaintop, lake) is usually not actionable β€” weight by population, not area.

Tips for Best Results

  • Always pair gap analysis with catchment analysis so stakeholders see both the covered and uncovered extents.
  • Enrich gaps with population and distance-to-facility to rank by actionability.
  • Use realistic catchment methods (network isochrones rather than Euclidean buffers) for accurate gap boundaries.
  • Set a minimum gap area threshold to filter out topology artifacts.
  • Validate surprising gaps against ground truth β€” sometimes an apparent gap is an uninhabited area.
  • Document the catchment cost model (mode, speed, threshold) explicitly.
  • Re-run the analysis at different threshold values to show sensitivity.
  • Use consistent colour schemes and legends for gap maps in public-facing reports.

Comparison with Other GIS Approaches

ArcGIS Network Analyst's Service Area solver combined with the Erase tool produces gap polygons via a two-step workflow. QGIS does the same via the Processing Toolbox: generate service areas, union them, then difference from the ROI. PostGIS uses ST_Union and ST_Difference. The Coverage Gap Finder on gis.tools delivers the full gap analysis in a single browser workflow with built-in population enrichment. The trade-off is that very large catchment sets (thousands of facilities) are still better suited to desktop or server-side GIS.

Performance Considerations

The cost is dominated by the vector union and difference operations. Unioning a few hundred moderately complex catchments takes seconds; unioning thousands takes minutes. Simplify input polygons with GeoJSON Simplifier for better performance. Population enrichment adds a zonal-statistics cost that scales with the raster size and gap count.

Data Privacy and Browser-Based Processing

Facility locations, catchment polygons and population rasters all stay in the browser. The union, clip and difference operations run locally in Turf.js; no data leaves your machine. This matters for sensitive facility locations (women's shelters, domestic violence services, classified installations) and for any workflow subject to data residency rules.

Related GIS Concepts

Difference (Erase): The vector operation that returns the part of one geometry not covered by another. Gap analysis is an erase of the ROI by the unioned catchments.

Coverage: The proportion of the ROI served by at least one facility. Gap analysis reports 100 percent minus coverage.

Accessibility: A broader family of metrics that includes simple catchment coverage as well as distance-to-nearest, two-step floating catchment area and gravity-based measures.

Voronoi Partition: An alternative to catchment difference that assigns every location to its closest facility. See Voronoi Polygons Generator.

Under-served Area: A policy term used in healthcare, education and transit for gap polygons that meet a minimum population threshold.

Frequently Asked Questions

What is the difference between catchment analysis and gap analysis?

Catchment analysis identifies where facilities reach; gap analysis identifies where they do not. The two are complementary β€” present them together.

How do I get facility catchment polygons to use as input?

Use Catchment Analysis or buffer facility points with the GIS Buffer Tool.

Can I enrich gaps with population?

Yes β€” drag in a population raster (WorldPop, GHSL, LandScan) and the tool runs zonal statistics automatically.

What minimum gap size should I use?

Start with 1% of the ROI area and adjust. Very small slivers are usually topology artifacts, not real gaps.

Can I use non-circular catchments?

Yes β€” any polygon layer works. Network isochrones, walk catchments, irregular trade areas all feed into the analysis.

Does the tool handle overlapping catchments?

Yes β€” they are unioned before the erase step, so overlaps do not double-count.

Related Tools on gis.tools

100% client-side processing - your data stays private and never leaves your device