3 min read
ghostwatch: satellite verification of completed government infrastructure
- civic-tech
- satellite
- case-study
Ghost projects, public infrastructure contracts reported as complete with no physical evidence of construction, are a documented accountability gap across the Philippines and most large public-works programs. Field audits cost thousands of dollars per site and realistically cover under one percent of active contracts. With ₱6.38 trillion spread across 248,220 DPWH projects and 11,161 registered contractors, the gap between reported and verifiable completion cannot be closed by inspection alone.
Satellites do something inspection cannot. Sentinel-2 revisits every point on Earth every five days at 10-meter resolution, free of charge. ghostwatch is a pipeline that uses Sentinel-2 to do, at the scale of a national infrastructure program, what a field auditor does per site: compare before and after.
How it works
For each project record with a known location and a known completion period, the pipeline pulls cloud-masked Sentinel-2 composites from before and after the contract window via Google Earth Engine. From the band reflectances it computes three spectral change indices: NDBI for built-up surfaces, NDVI for vegetation, and BSI for bare soil. The deltas between the before and after composites get classified into one of five outcomes:
CONSTRUCTION_DETECTED: built-up index rose, vegetation fell, bare-soil signature consistent with finished construction.VEGETATION_CLEARED: bare-soil rose, vegetation fell, no built-up signal yet (early stage or grading only).PARTIAL_CONSTRUCTION: mixed signal, plausibly mid-build.NO_CHANGE: no detectable spectral change between the two composites.INSUFFICIENT_DATA: too few cloud-free Sentinel-2 acquisitions in the window to score.
A project gets flagged when its DPWH status is completed, the spectral classification is NO_CHANGE, and the confidence score is at or above 0.70.
What it can and cannot see
It can see large completed structures: bridges, road segments, terminals, paved sites. The Panguil Bay Bridge goes from open water to a completed span between 2020 and 2024 in Sentinel-2. The bridge is several pixels long at 10-meter resolution. The signal is unambiguous.
It cannot reliably see small structures (covered courts under 100 square meters), underground works (drainage rehab, sewer projects), or anything completed outside the cloud-free acquisition window. A 30-meter footbridge is a single pixel either way. Higher-resolution commercial imagery would catch more, but it isn’t free, and the point of building this on Sentinel-2 is the zero marginal cost per project.
The 10-meter resolution is the primary limitation, and the disclaimer in the README is the right framing. A flag is a statistical indicator that a human should look at the site, not a finding of fraud or irregularity. The pipeline narrows the search space from a quarter-million projects to a few hundred worth a closer look.
What you do with the output
The dashboard surfaces flagged projects with a before/after Sentinel-2 slider, the spectral indices for each, and the confidence score. Region and contractor rollups let you sort by total budget exposure or by project count. The CLI emits the same data as a CSV per project, suitable for further analysis or hand-off to a journalist or auditor.
Most of the time you spend on this kind of project is not in the model or the imagery. It is in the country adapter that turns whatever format DPWH publishes this year into the project records the pipeline expects. That adapter pattern is in the repo for anyone who wants to point ghostwatch at a different country’s public-works program.