Coverage
9 rows, 2018-12-31 to 2026-07-01. 9 carry a figure.
official statistic
PSA's annual head count of the national herd, all classes. One reading a year, and the slowest-moving number on this site.
01 · The figures
Computed from the rows during the build, over live rows only — a withdrawn figure is one this site could not stand behind, and reprinting it as a record high would be republishing it under a different heading.
Latest
8.93
1.6%
2026. million heads.
Highest
12.70
2019
Lowest
8.75
2024
Range
3.95
Highest minus lowest, across every published row.
Coverage
100%
9 of 9 rows carry a figure.
Span
7y
2018-12-31 to 2026-07-01
Freshness budget
732d
The rule: 366 days for a annual source, times 2 — 732 days. A budget at one cadence fires the moment a release is a day late, and a gate that fires on healthy data is one people learn to ignore.
Withdrawn
4
Kept in the archive, flagged, and deliberately not reprinted below.
02 · The shape of it
National swine inventory
million heads
Reading it: the line breaks wherever the source published no figure, and each of those runs is shaded. The vertical axis is fitted to the data and both bounds are labelled; it does not start at zero, because ₱150 to ₱260 on a zero-based axis is a flat line and a fitted one is the same fact made legible.
03 · What is in it
9 rows, 2018-12-31 to 2026-07-01. 9 carry a figure.
Beyond the period, the value, the source and the access date, which every row in this archive has. Counted from the rows, so a column that stops being filled stops being listed.
asOf
— 9 rows. the real reading date behind an annual row.
note
— 9 rows. a sentence about that row in particular.
annotation
— 2 rows. the source’s own note about the period.
derivation
— 1 rows. the arithmetic that produced the figure, recomputed on every run.
The newest figure is 52 days old, inside its 732-day budget.
The rule: 366 days for a annual source, times 2 — 732 days. A budget at one cadence fires the moment a release is a day late, and a gate that fires on healthy data is one people learn to ignore.
04 · Where it comes from
official statistic
Every row carries the exact page or document it was read from, and the date somebody opened it — not just the agency. Those URLs are in the download, one per row, because "Philippine Statistics Authority — Swine Situation Report" is not a citation anybody can follow.
research
Every row carries the exact page or document it was read from, and the date somebody opened it — not just the agency. Those URLs are in the download, one per row, because "PubMed Central — peer-reviewed literature" is not a citation anybody can follow.
trade press
Every row carries the exact page or document it was read from, and the date somebody opened it — not just the agency. Those URLs are in the download, one per row, because "BusinessMirror" is not a citation anybody can follow.
trade press
Every row carries the exact page or document it was read from, and the date somebody opened it — not just the agency. Those URLs are in the download, one per row, because "BusinessWorld" is not a citation anybody can follow.
editorial
Every row carries the exact page or document it was read from, and the date somebody opened it — not just the agency. Those URLs are in the download, one per row, because "Baboy PH editorial synthesis" is not a citation anybody can follow.
06 · Withdrawn
Figures this site once published and then could not stand behind. They are kept in the archive rather than deleted, because the record that we got something wrong is worth more than a tidy file — but the wrong numbers are deliberately not reprinted here. They are in the audit download below, flagged, where nobody will mistake one for a current price.
2019 withdrawn 2026-07-12
The sourced pre-ASF peak is 12.70M as of 1 July 2019. Superseded by the row below.
2024 withdrawn 2026-07-12
Overstates the herd by 0.43M. PSA's year-end 2024 swine inventory is 8.75M heads. Superseded by the row below.
2025 withdrawn 2026-07-12
Not a year-end figure. 9.01M is the 1 July 2025 reading, charted as if it were the 2025 annual value and displayed as 'current' on the dashboard for two months. PSA's year-end 2025 inventory is 8.79M. Superseded by the row below; the 9.01M reading is preserved in `quarterlyReference`.
2026 withdrawn 2026-08-22
Superseded inside its own year, not mis-read. 8.70M is PSA's true count for 01 Apr 2026 and it stays readable here, in `quarterlyReference` and to the head (8,702,715) in `swine-inventory-total`. What went wrong is the job this row was doing: it is the only live 2026 row, so the dashboard published it as the current national herd and the chart drew it as the 2026 bar, and PSA has since counted 8,928,329 on 01 Jul 2026. Leaving it live would publish a superseded count as the current one, which is what the 2025-07-01 row was retracted for on 2026-07-12. Superseded by the row below.
07 · The tail
a decade of a yearly series. The whole thing is in the downloads below — this table is the end of it.
| Period | Value | Source read on |
|---|---|---|
| 2026 | 8.93 | 2026-08-22 |
| 2025 | 8.79 | 2026-07-12 |
| 2024 | 8.75 | 2026-07-12 |
| 2023 | 9.32 | 2026-05-20 |
| 2022 | 9.55 | 2026-05-20 |
| 2021 | 9.72 | 2026-05-20 |
| 2020 | 10.90 | 2026-05-20 |
| 2019 | 12.70 | 2026-07-12 |
| 2018 | 12.60 | 2026-05-20 |
Each row cites its own document, linked from its access date.
08 · Download
Every row carries its source, its URL and the date somebody actually opened it, and the attribution line is repeated on every row rather than in a header — because the unit of loss is the row, not the file.
| File | Format | Size | Rows | What is in it |
|---|---|---|---|---|
| herd.csv | text/csv | 3 KB | 9 | Published rows only, one row per period. Retracted rows are excluded, so an average taken over this file is correct without filtering. Null values are the token NA. |
| full/herd.csv | text/csv | 6 KB | 13 | Every row this archive has ever held, including withdrawn ones, with a status column and the retraction date and reason. Use this to audit the archive, not to compute on. |
| herd.json | application/json | 7 KB | 13 | The same rows as the full CSV, as JSON, with the coverage summary and the licence. |
| herd.parquet | application/vnd.apache.parquet | 3 KB | 9 | The published rows with types: the numeric columns are doubles and a missing figure is a real null rather than the NA token a CSV has to write. |
Sizes: the real ones, from the same call that produced the bytes the endpoint serves. There is deliberately no Parquet of the full file — the withdrawn rows are the ones nobody may compute on without looking.
Every series stacked under one schema, typed, with real nulls. It is not this series — kept in its own block so nobody takes the whole archive by mistake.
09 · Related
Each of these states its relation. A related list with no stated relation is a list of guesses, and the strongest ones here are facts about the source rather than editorial judgements.
The herd — how many pigs there are.
The herd — how many pigs there are.
The herd — how many pigs there are.
The herd — how many pigs there are.
The herd — how many pigs there are.
The herd — how many pigs there are.
The herd — how many pigs there are.
Published annual, like this one.
10 · Cite it
Attribution is the only condition, and it is what keeps a figure traceable once it has been copied twice.
Plain text
Baboy PH state-of-the-industry archive, series "herd". CC BY 4.0. https://baboyph.com/data/herd
BibTeX
@misc{baboyph-herd,
title = {National swine inventory},
author = {{Baboy PH}},
howpublished = {\url{https://baboyph.com/data/herd}},
note = {million heads. CC BY 4.0.},
urldate = {2026-08-22},
} Straight at the data
https://baboyph.com/data/herd.csv
Licence: CC BY 4.0. The figures themselves are official statistics published by the agencies named above; what this archive adds is the retrieval, the provenance on every row, and the refusals.