Methodology
Sources.
DPWH spend: PhilGEPS awards data 2013 to 2025, filtered to contracts where the
implementing agency name contains "PUBLIC WORKS AND HIGHWAYS". Mirrored at
csiiiv/philgeps-awards-dashboard
(MIT license).
Poverty: PSA OpenStat 1E/FY Table 1a (Annual Per Capita Poverty Threshold and
Poverty Incidence Among Families with Measures of Precision); anchors at 2018,
2021, 2023.
Per capita GDP: PSA OpenStat 2A/PPA/2025 Table 9 at constant 2018 prices, 2022 to 2024.
Consumer Price Index: PSA OpenStat 2M/PI/CPI/2018NEW, all items, PHILIPPINES
annual average; used to deflate DPWH spend to PHP 2018-real.
Population: PSA 2020 Census of Population and Housing, with Highly Urbanized
Cities summed back into their parent provinces so per-capita ratios reflect the
whole geographic province.
Awards, not disbursement.
Every spend figure here is PhilGEPS contract awards (the peso value of
contracts awarded), not disbursement (cash actually paid out). The two are not
the same: a contract can be awarded and then run for years, get re-scoped, or go
partly unspent. Government reports its money in three stages, appropriation
(budgeted), obligation (committed), then disbursement (paid), and disbursement
routinely lags obligation by a wide margin within a year. Actual disbursement
by province of delivery is not published anywhere machine-readable for
2014 to 2024: COA's annual reports (coa.gov.ph) are PDF-only and tag the
disbursing agency office, not where the project was built; DPWH's project portal
carries awards, not cash. So awards are the closest public proxy. The "five
trillion in roads" headline is the total contract value attributed to provinces,
money committed, not money proven spent.
Compute.
For each province and year, DPWH per capita is the sum of DPWH-tagged contract
award values divided by 2020 Census population. Poverty for non-anchor years is
linearly interpolated between the nearest PSA anchors; years before 2018 and
after 2023 are held constant at the nearest anchor (rendered with a colored
border so the held-constant treatment is visible). DPWH PHP 2018-real values
are nominal divided by (annual CPI / 100). The per-story "What the data shows"
line is a Spearman rank correlation computed across all provinces at the story's
reference year; it describes association only, never causation.
Uncertainty.
Poverty and subsistence incidence are survey estimates, not censuses, so PSA
publishes a 95% confidence interval and a coefficient of variation (CV) for each
province-year. The chart carries those: hover any poverty or subsistence bubble
to see its CI, select a province to draw its CI as a whisker, and provinces whose
CV exceeds 30% (PSA's threshold for an imprecise estimate, typically the
low-poverty provinces where a small sample yields a wide margin) are drawn dimmed
with a dashed amber ring. Only the survey years (2018, 2021, 2023) carry a CI;
interpolated and held-constant years are model estimates and deliberately show
none.
Honesty notes.
About 20 percent of DPWH award value cannot be attributed to a single province
(null area_of_delivery, multi-province contracts, "Independent City" bucket)
and is excluded. Seven province-years with per-capita under PHP 100 are
dropped as likely coverage gaps. Maguindanao is shown as the pre-2022-split
unit because PSA's poverty table still reports the rolled-up Maguindanao;
Maguindanao del Norte / del Sur 2023 rows are intentionally not used. NCR
is the regional aggregate (16 cities) treated as a single bubble.
Fixed denominator.
Every per-capita figure across 2014 to 2024 divides by the same 2020 Census
population, because that is the only complete province-level census in the
window. Provinces grew over the decade, so early-year per-capita spend is
modestly overstated and late-year modestly understated relative to a true
same-year population. The effect is small next to the year-to-year swings in
contract awards, but it is real and worth knowing.
Single-snapshot indicators.
Population is the 2020 Census, and "poverty change 2018 to 2023" is one number
per province. Both are repeated across the panel only so they can pair with
year-varying indicators in the picker; they do not actually vary by year, so the
animation holds them still and the chart labels them "does not vary by year."
Hitting play never implies motion these series do not have.
Limits.
Poverty rates are PSA's "province-without-HUC" measure published in Table 1a.
Per-capita DPWH spend uses whole-province population including HUCs. Per
capita GDP uses PSA's "province-only" measure (HUCs are published separately
and are NOT rolled in here), and PSA publishes provincial GDP only from 2022,
so that panel is three years. Bubble size is the 2020 Census and does not
animate. Every province carries all three published PSA anchors (2018, 2021,
2023); for example Sulu fell from 75.3% in 2018 to 41.5% in 2021 to 13.0% in
2023. Years before 2018 and after 2023 are held constant at the nearest
anchor and drawn with a colored border so the held-constant treatment is
visible.