100 articles · 8 breeds · tools · topics

official statistic

Hog farmgate price by province, all farms (PSA)

The all-farms survey across every Philippine region and province. Every row carries its own PSA geolocation code, because a provincial figure that reaches a national chart unlabelled is undetectable in review — it just looks like a month where the price moved.

Current monthly Machine-retrieved PHP/kg liveweight 110 geographies

Download this series

What this series says

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

190.00

0.0%

2026-06. PHP/kg liveweight.

Highest

417.57

2025-12

Lowest

5.12

2025-07

Range

412.45

Highest minus lowest, across every published row.

Coverage

87%

1,822 of 2,090 rows carry a figure.

Span

1y

2025-01-31 to 2026-07-31

Freshness budget

90d

A documented override, not the rule. Publication lag is not cadence: the source publishes a period well after it ends, and the reading then ages a whole refresh interval before the next fetch can replace it. 90 days sits above the worst healthy observation and below an outage.

Geographies

110

Every one of them is in the download, each row carrying its own PSA code.

Every published row

Hog farmgate price by province, all farms (PSA)

Cordillera Administrative Region (CAR) only — the geography with the most published figures. This series holds 110 in total and every one of them is in the download.

200.00210.00220.00230.00240.00245.90199.302025-012026-072025-052025-082025-122026-03

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.

The 12 dearest geographies, by their own latest reading

Each line is that geography's last sixteen periods. They are not all the same period, which is why they are listed rather than ranked against each other — the whole geography is in the download.

Geography Latest Period Published rows Recent
Siquijor province 279.24 2026-06 18
Northern Samar province 268.93 2026-06 18
Benguet province 258.70 2026-06 18
Occidental Mindoro province 246.82 2026-06 18
Ifugao province 240.00 2026-06 18
Bohol province 231.57 2026-06 18
Samar province 226.05 2026-06 18
Tarlac province 225.92 2026-06 18
Cordillera Administrative Region (CAR) region 224.10 2026-06 18
Oriental Mindoro province 217.17 2026-06 18
Marinduque province 216.44 2026-06 18
La Union province 213.96 2026-06 18

Rows, blanks and columns

Coverage

2,090 rows, 2025-01-31 to 2026-07-31. 1,822 carry a figure. Across 110 geographies, each row carrying its own PSA code.

What the blanks are

268 of 2,090 rows (13%) carry no figure. Each is a monthly period the source published without a figure. Nothing is interpolated and nothing is carried forward: the gap is the honest answer and the row says so.

Which optional columns it carries

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.

  • first_seen — 2,090 rows. the date this archive first held a row for that key, set once.
  • receipt_id — 2,090 rows. the content-addressed receipt proving which document it came from.

Freshness

The newest figure is 53 days old, inside its 90-day budget.

A documented override, not the rule. Publication lag is not cadence: the source publishes a period well after it ends, and the reading then ages a whole refresh interval before the next fetch can replace it. 90 days sits above the worst healthy observation and below an outage.

Whose survey, read how, out of which document

official statistic

PSA OpenSTAT — Philippine Statistics Authority statistical database

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 "PSA OpenSTAT — Philippine Statistics Authority statistical database" is not a citation anybody can follow.

How it was retrieved

A PXWeb query against PSA OpenSTAT. The table is addressed by its full path, and every dimension this series pins names the code AND the label that code must still read. Both are re-read from the live table's own metadata before anything is written, and a label that has moved refuses the run instead of returning a different commodity at a believable peso figure.

Field Value What guards it
Table 2M/NFG/0032M4AFN12 The full path from DB/ down, never the basename: 0042M4ARN09.px exists under two folders, one stops in 2021 and the other runs to 2026, and nothing in a response says which answered.
Type 3 — "Hog for Slaughter" The label is re-read on every run. A code that changed meaning refuses.
Units peso per kilogram, liveweight PSA's own PX header, verbatim. Two production tables one geography level apart declare "metric ton, liveweight" and "metric ton"; reading the second as the first would put a claim on this site the source does not make.
Period Month · the reading covers a month and the row is dated its last day The dimension is resolved by name, never by position, and the live value labels have to look like the style declared here.
Geography every geolocation except the national one Codes in the "livestock" family. PSA runs two schemes that are not translatable by arithmetic, so a code is only ever validated inside its own.

The documents behind these rows

5 documents were read to build this series, each hashed on the exact bytes received. The newest 5 are below; the rest are on the provenance page . Download one, hash it, and either it matches or the publisher has reissued it.

Document Read on Bytes Rows sha256
scripts/fetch-psa-farmgate.mjs 2026-08-20 33,261 475 89ba6be2bd9c89d0…
scripts/fetch-psa-farmgate.mjs 2026-08-20 33,082 475 39eebd9cdd1e2e15…
scripts/fetch-psa-farmgate.mjs 2026-08-20 13,915 190 a9a8dbbcb53997f1…
scripts/fetch-psa-farmgate.mjs 2026-08-20 33,074 475 589748b2fc055f8d…
scripts/fetch-psa-farmgate.mjs 2026-08-20 33,056 475 931e1c00a56d92e9…

The most recent 12

a year of a monthly series, for Cordillera Administrative Region (CAR). The whole thing is in the downloads below — this table is the end of it.

Period Value Source read on
2026-07 no figure published 2026-08-20
2026-06 224.10 2026-08-20
2026-05 211.02 2026-08-20
2026-04 216.53 2026-08-20
2026-03 208.88 2026-08-20
2026-02 201.42 2026-08-20
2026-01 205.59 2026-08-20
2025-12 222.81 2026-08-20
2025-11 228.45 2026-08-20
2025-10 202.36 2026-08-20
2025-09 215.90 2026-08-20
2025-08 217.38 2026-08-20

All of these rows cite: https://openstat.psa.gov.ph/PXWeb/api/v1/en/DB/2M/NFG/0032M4AFN12.px

Four files, free, with attribution

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
hog-farmgate-average-regional.csv text/csv 755 KB 2,090 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/hog-farmgate-average-regional.csv text/csv 792 KB 2,090 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.
hog-farmgate-average-regional.json application/json 879 KB 2,090 The same rows as the full CSV, as JSON, with the coverage summary and the licence.
hog-farmgate-average-regional.parquet application/vnd.apache.parquet 14 KB 2,090 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.

Or the whole archive at once

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.

baboyph-industry.parquet

The same survey question, asked of a different set of geographies. One selection, two series, because a national line and a provincial grid are different pages.

Please link back

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 "hog-farmgate-average-regional". CC BY 4.0. https://baboyph.com/data/hog-farmgate-average-regional

BibTeX

@misc{baboyph-hog-farmgate-average-regional,
  title        = {Hog farmgate price by province, all farms (PSA)},
  author       = {{Baboy PH}},
  howpublished = {\url{https://baboyph.com/data/hog-farmgate-average-regional}},
  note         = {PHP/kg liveweight. CC BY 4.0.},
  urldate      = {2026-08-20},
}

Straight at the data

https://baboyph.com/data/hog-farmgate-average-regional.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.