Philippine COVID-19, 2020–2026
The confirmed toll is 66,864 deaths. The excess-mortality estimate for the same period is 290,774. This page is mostly about that gap, and about which of the two numbers a country actually gets quoted.
Every figure on this page is read at one date, 19 July 2026. That sounds like housekeeping. The page it replaces took its case count from May 2023, its death count from January 2024 and its vaccination count from December 2022 — each close to real, the set impossible.
- Confirmed deaths: 66,864. Excess deaths over the same period: 290,774 — 4.3× higher, leaving 223,910 deaths above the historical baseline that were never attributed to COVID.
- The case fatality rate of 1.6% is therefore a rate among tested people, not among infected ones. It is the most-quoted number here and the least informative.
- 5 waves, by a stated rule rather than by eye. The largest peaked at 38,867 cases in a single day.
- Against the five largest other ASEAN economies the Philippines ranks 2 for deaths per million — while ranking near the bottom for cases per million, which is a testing story rather than an infection one.
The Gap That Runs The Page
Confirmed COVID deaths are deaths in people who were tested, found positive, and recorded as such. Excess mortality is the count of deaths above what the years before the pandemic would predict, from any cause. Where the two diverge, the smaller one is a measure of testing.
Confirmed deaths
The number in every headline, and the one the case fatality rate is built from.
Excess deaths
Deaths above the pre-pandemic baseline over the same window.
Never attributed
The difference. Some are undiagnosed COVID; some are people who died of other things because hospitals were full. The data cannot separate them, and no split is asserted here.
The Epidemic Curve
Daily confirmed cases with the 7-day mean. Reporting moved from daily to weekly during 2023 and then stopped, so the flat tail is the end of counting, not the end of transmission.
Highest single day
On 2022-01-15.
Highest 7-day mean
The smoothed peak, which is the figure worth comparing between countries because it is not distorted by weekend reporting.
Cases in 2021
The worst year by cases and by deaths — 42,274 of the latter.
Counting The Waves
"Four waves" is the kind of claim that gets repeated because it sounds settled. Here a wave is a peak in the 7-day mean above 1,000 cases/day, separated from any larger peak by a trough falling below 40% of the smaller of the two. That rule gives 5. A different threshold gives a different answer, which is the honest position.
Waves identified
Boundaries sit at the lowest point between consecutive peaks, so every day belongs to exactly one wave and the wave totals sum to the daily series.
Largest peak (wave 3)
Omicron, peaking 2022-01-18. 849,228 cases in the wave.
Deadliest (wave 2)
Delta. Fewer recorded cases than wave 3 at its peak, and 4.4× the deaths — the clearest thing in this dataset about what vaccination changed.
Testing, And What It Hides
Positivity is the share of tests that come back positive. When it is high, the case count is a floor rather than a measurement, because testing is only reaching the sickest. The series stops in 2022-06-07 — the page stops with it.
Positivity peak
The WHO suggested 5% as the level below which an epidemic is being adequately tracked. This is many times that.
Days with testing data
Out of 2,392 days in the series. Testing data covers less than a third of the pandemic.
Last reported
Nothing after this date. Any positivity figure quoted for 2023 onward is not coming from this source.
Lockdown Stringency
The Oxford stringency index scores containment policy from 0 to 100. The Philippines reached 100 — the maximum the index defines. The correlation with cases is positive, and that needs explaining rather than presenting.
Peak stringency
The index maximum. Few countries reached it and none held it long.
Mean over the period
Averaged across 1,088 days with both series present, ending 2022-12-31.
Correlation with cases
Positive. Read naively that says restrictions caused cases. It says the opposite: governments tightened because cases were rising. Same-day correlation cannot separate cause from response, and this page does not claim it can.
Against The Region
The five largest other ASEAN economies, per million people. Brunei, Laos, Cambodia and Timor-Leste are left out because their populations are small enough to make per-million rates jump around.
Rank by deaths per million
Of six. 586 deaths per million.
Cases per million
Against 532,073 for Singapore. Singapore did not have fourteen times the infection; it had the testing to find it.
Fully vaccinated
The lowest of the six. Vietnam and Singapore both cleared 86%.
What This Page Does Not Cover
The version this replaces charted cases by region, vaccination by region, vaccine brand shares, ICU occupancy, age and sex breakdowns, top provinces, economic impact and healthcare-worker infections. None of those are in this dataset for the Philippines, and the numbers that were on the page did not come from anywhere else either. They are removed rather than approximated.
Regional, provincial, age and sex
DOH published these in its COVID Data Drop. That drop is no longer served, and OWID never carried sub-national Philippine detail. Anything at this granularity would have to be rebuilt from archived copies first.
ICU and hospital occupancy
OWID carries ICU and hospital columns, but they are empty for the Philippines for the whole period. An empty column and a low number are not the same thing.
Vaccine brands and economic impact
Brand-level rollout came from NTF briefings; the economic figures would need PSA national accounts. Neither is in this repository, so neither is on this page.
Method
Two scripts and eight CSVs, reproducible from this repository.
Source
Our World in Data's compact.csv — about 180 MB of
every country on one date index. The fetcher streams it, filters to the
Philippines plus five ASEAN comparators, and writes only those rows.
One date, carried everywhere
Every figure is read at 2026-07-19, and that date sits on
every row of every CSV. checks.sql asserts a single
as_of across all seven tables, because the specific failure
being designed against is a page whose numbers were individually right
and collectively impossible.
Wave rule
A peak in the 7-day mean above 1,000 cases/day, separated from any larger peak by a trough below 40% of the smaller. Boundaries are the minimum between consecutive peaks, half-open on the left so no day is counted twice — an earlier version double-counted four boundary days, which is small enough to pass for rounding.
A revision worth knowing
On 14 August 2023 the cumulative case count fell by
65,079 as DOH revised downward.
OWID rebased the cumulative series without restating the dailies, so
summing daily cases gives about 32,000 more than the cumulative total.
Both are right on their own terms; checks.sql keeps the
discrepancy visible so nobody scales one to the other.
Series that stop
Stringency ends 2022-12-31, positivity 2022-06-07, vaccination 2023-03-19. Charts stop where their data stops instead of running flat to the present, which would read as policy relaxing to zero rather than reporting ending.
Verification
Twelve assertions in checks.sql cover date gaps,
negative counts, deaths exceeding cases, wave partitioning and the
country-name match that would otherwise return an empty comparison.
Every figure above is bound to a query in facts.sql and
re-checked on each build.
Key Findings & Summary
- Excess deaths reached 290,774 against 66,864 confirmed — 4.3×. The confirmed toll is the one that gets quoted and it is the smaller of two defensible numbers.
- The 1.6% case fatality rate divides deaths by confirmed cases. With positivity peaking far above the 5% that indicates adequate tracking, the denominator is a fraction of real infections and the rate is not a probability of dying from COVID.
- Wave 2 (Delta) killed 41,694 against wave 3's (Omicron) deaths, on 2,354,103 recorded cases versus 849,228. Wave 3 was bigger and far less lethal.
- Stringency and cases correlate positively at r=0.259 over 1,088 paired days. That is governments responding to outbreaks, not causing them, and it is a good example of a correlation that is real and means the reverse of how it reads.
- The Philippines is 2 of six ASEAN economies for deaths per million at 587, while recording 36,622 cases per million against Singapore's 532,073. Low case counts next to high death counts is what undertesting looks like.
Sources & Citations
Every figure on this page traces to one of these, through a CSV in
data/ph-covid/. Each is checked against its source query on every
build.
Our World in Data COVID-19 datasetSecondary
Cases, deaths, testing, stringency, vaccination and excess mortality — OWID compiles WHO, JHU and national sources onto one date index
Let's Discuss This Analysis
Interested in public health data analytics or pandemic research collaboration?
Have a dataset you'd like analyzed or need a mini AI project as a starter guide? Send me your suggestions!
Prefer the plain-English version?
I wrote a companion post — “Two Ways to Count the Dead” — in simple, everyday words.