baboyph-state-of-the-industry
type: Dataset
conforms to: http://mlcommons.org/croissant/1.1
description: Every figure Baboy PH publishes about Philippine pig farming: farmgate and retail prices, herd inventory, African swine fever activity and feed ingredient costs, each row carrying the source it was lifted from and the date it was read. Rows are appended and never deleted; a wrong row is retracted in place. A null is a published absence, never zero and never interpolated.
license: https://creativecommons.org/licenses/by/4.0/
creator: Baboy PH
date published: 2026-05-20
version: 2026.8.22
keywords: ASF
keywords: African swine fever
keywords: Philippines
keywords: herd size
keywords: hog farmgate price
keywords: hog feed price
keywords: liveweight
keywords: pig farming
keywords: pork price
keywords: presyo ng baboy
keywords: retail price
keywords: swine inventory
cite as: Baboy PH state-of-the-industry archive. CC BY 4.0. https://baboyph.com/data
is live dataset: true
distribution: prices.csv
distribution: asf-active.csv
distribution: herd.csv
distribution: feed-trend.csv
distribution: hog-farmgate-average.csv
distribution: hog-farmgate-household.csv
distribution: hog-farmgate-establishment.csv
distribution: hog-farmgate-average-regional.csv
distribution: hog-farmgate-household-regional.csv
distribution: hog-farmgate-establishment-regional.csv
distribution: swine-inventory-total.csv
distribution: swine-inventory-smallhold.csv
distribution: swine-inventory-semicommercial.csv
distribution: swine-inventory-commercial.csv
distribution: swine-inventory-legacy-total.csv
distribution: swine-inventory-legacy-backyard.csv
distribution: swine-inventory-legacy-commercial.csv
distribution: hog-production-national.csv
distribution: hog-production-regional.csv
distribution: hog-slaughtered.csv
distribution: pork-retail-psa-kasim.csv
distribution: pork-retail-psa-liempo.csv
distribution: pork-retail-psa-meat-with-bones.csv
distribution: pork-retail-psa-pata-fore.csv
distribution: pork-wholesale-sabit-ulo.csv
distribution: pork-retail-liempo.csv
distribution: pork-retail-kasim.csv
distribution: pork-frozen-liempo.csv
distribution: pork-frozen-kasim.csv
distribution: hog-farmgate-bai-backyard.csv
distribution: hog-farmgate-bai-commercial.csv
distribution: hog-farmgate-average-quarterly.csv
distribution: hog-farmgate-household-quarterly.csv
distribution: hog-farmgate-establishment-quarterly.csv
distribution: backyard-commercial-spread.csv
distribution: feed-ingredient-corn-yellow.csv
distribution: feed-ingredient-sbm-argentina.csv
distribution: feed-ingredient-sbm-fullfat.csv
distribution: feed-ingredient-sbm-us.csv
distribution: feed-ingredient-feedwheat.csv
distribution: feed-ingredient-feedwheat-others.csv
distribution: feed-ingredient-local-fishmeal.csv
distribution: feed-ingredient-coco-oil.csv
distribution: feed-ingredient-copra-meal.csv
distribution: feed-ingredient-crude-palm-oil.csv
distribution: feed-ingredient-ddgs.csv
distribution: feed-ingredient-molasses.csv
distribution: feed-ingredient-palm-olein.csv
distribution: feed-ingredient-pollard-hard.csv
distribution: feed-ingredient-rice-bran-d1.csv
distribution: world-maize.csv
distribution: world-soybean-meal.csv
distribution: usda-swine-meat-production.csv
distribution: usda-swine-meat-imports.csv
distribution: usda-swine-meat-exports.csv
distribution: usda-swine-meat-consumption.csv
distribution: usda-swine-meat-beginning-stocks.csv
distribution: usda-swine-meat-ending-stocks.csv
distribution: php-usd-average.csv

prices.csv
type: FileObject
description: Headline liveweight farmgate price: published rows only, one row per period.
encoding format: text/csv

asf-active.csv
type: FileObject
description: ASF active barangays: published rows only, one row per period.
encoding format: text/csv

herd.csv
type: FileObject
description: National swine inventory: published rows only, one row per period.
encoding format: text/csv

feed-trend.csv
type: FileObject
description: Premium grower/finisher feed price: published rows only, one row per period.
encoding format: text/csv

hog-farmgate-average.csv
type: FileObject
description: Hog farmgate price, all farms (PSA): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-household.csv
type: FileObject
description: Hog farmgate price, backyard farms (PSA): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-establishment.csv
type: FileObject
description: Hog farmgate price, commercial farms (PSA): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-average-regional.csv
type: FileObject
description: Hog farmgate price by province, all farms (PSA): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-household-regional.csv
type: FileObject
description: Hog farmgate price by province, backyard farms (PSA): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-establishment-regional.csv
type: FileObject
description: Hog farmgate price by province, commercial farms (PSA): published rows only, one row per period.
encoding format: text/csv

swine-inventory-total.csv
type: FileObject
description: Swine inventory, all farms (PSA): published rows only, one row per period.
encoding format: text/csv

swine-inventory-smallhold.csv
type: FileObject
description: Swine inventory, smallhold farms (PSA): published rows only, one row per period.
encoding format: text/csv

swine-inventory-semicommercial.csv
type: FileObject
description: Swine inventory, semi-commercial farms (PSA): published rows only, one row per period.
encoding format: text/csv

swine-inventory-commercial.csv
type: FileObject
description: Swine inventory, commercial farms (PSA): published rows only, one row per period.
encoding format: text/csv

swine-inventory-legacy-total.csv
type: FileObject
description: Swine inventory, all farm types (PSA, 2013-2020 scheme): published rows only, one row per period.
encoding format: text/csv

swine-inventory-legacy-backyard.csv
type: FileObject
description: Swine inventory, backyard farms (PSA, 2013-2020 scheme): published rows only, one row per period.
encoding format: text/csv

swine-inventory-legacy-commercial.csv
type: FileObject
description: Swine inventory, commercial farms (PSA, 2013-2020 scheme): published rows only, one row per period.
encoding format: text/csv

hog-production-national.csv
type: FileObject
description: Hog production volume (PSA): published rows only, one row per period.
encoding format: text/csv

hog-production-regional.csv
type: FileObject
description: Hog production volume by region (PSA): published rows only, one row per period.
encoding format: text/csv

hog-slaughtered.csv
type: FileObject
description: Hogs slaughtered in slaughterhouses (PSA): published rows only, one row per period.
encoding format: text/csv

pork-retail-psa-kasim.csv
type: FileObject
description: Pork kasim retail price (PSA): published rows only, one row per period.
encoding format: text/csv

pork-retail-psa-liempo.csv
type: FileObject
description: Pork liempo retail price (PSA): published rows only, one row per period.
encoding format: text/csv

pork-retail-psa-meat-with-bones.csv
type: FileObject
description: Pork meat with bones retail price (PSA): published rows only, one row per period.
encoding format: text/csv

pork-retail-psa-pata-fore.csv
type: FileObject
description: Pork pata (fore) retail price (PSA): published rows only, one row per period.
encoding format: text/csv

pork-wholesale-sabit-ulo.csv
type: FileObject
description: Wholesale hog price, sabit ulo (BAI): published rows only, one row per period.
encoding format: text/csv

pork-retail-liempo.csv
type: FileObject
description: Retail pork liempo price (BAI): published rows only, one row per period.
encoding format: text/csv

pork-retail-kasim.csv
type: FileObject
description: Retail pork kasim price (BAI): published rows only, one row per period.
encoding format: text/csv

pork-frozen-liempo.csv
type: FileObject
description: Retail frozen liempo price (BAI): published rows only, one row per period.
encoding format: text/csv

pork-frozen-kasim.csv
type: FileObject
description: Retail frozen kasim price (BAI): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-bai-backyard.csv
type: FileObject
description: Hog farmgate price, backyard (BAI weekly): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-bai-commercial.csv
type: FileObject
description: Hog farmgate price, commercial (BAI weekly): published rows only, one row per period.
encoding format: text/csv

hog-farmgate-average-quarterly.csv
type: FileObject
description: Hog farmgate price, all farms — quarterly mean: published rows only, one row per period.
encoding format: text/csv

hog-farmgate-household-quarterly.csv
type: FileObject
description: Hog farmgate price, backyard — quarterly mean: published rows only, one row per period.
encoding format: text/csv

hog-farmgate-establishment-quarterly.csv
type: FileObject
description: Hog farmgate price, commercial — quarterly mean: published rows only, one row per period.
encoding format: text/csv

backyard-commercial-spread.csv
type: FileObject
description: Backyard-to-commercial price gap: published rows only, one row per period.
encoding format: text/csv

feed-ingredient-corn-yellow.csv
type: FileObject
description: Yellow corn wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-sbm-argentina.csv
type: FileObject
description: Soybean meal (Argentina) wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-sbm-fullfat.csv
type: FileObject
description: Soybean meal (full fat) wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-sbm-us.csv
type: FileObject
description: Soybean meal (US) wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-feedwheat.csv
type: FileObject
description: Feedwheat wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-feedwheat-others.csv
type: FileObject
description: Feedwheat (other origins) wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-local-fishmeal.csv
type: FileObject
description: Local fishmeal wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-coco-oil.csv
type: FileObject
description: Coconut oil wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-copra-meal.csv
type: FileObject
description: Copra meal wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-crude-palm-oil.csv
type: FileObject
description: Crude palm oil wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-ddgs.csv
type: FileObject
description: DDGS wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-molasses.csv
type: FileObject
description: Molasses wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-palm-olein.csv
type: FileObject
description: Palm olein wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-pollard-hard.csv
type: FileObject
description: Pollard (hard) wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

feed-ingredient-rice-bran-d1.csv
type: FileObject
description: Rice bran D1 wholesale price (BAI): published rows only, one row per period.
encoding format: text/csv

world-maize.csv
type: FileObject
description: Maize world reference price (World Bank): published rows only, one row per period.
encoding format: text/csv

world-soybean-meal.csv
type: FileObject
description: Soybean meal world reference price (World Bank): published rows only, one row per period.
encoding format: text/csv

usda-swine-meat-production.csv
type: FileObject
description: Philippine pork production (USDA): published rows only, one row per period.
encoding format: text/csv

usda-swine-meat-imports.csv
type: FileObject
description: Philippine pork imports (USDA): published rows only, one row per period.
encoding format: text/csv

usda-swine-meat-exports.csv
type: FileObject
description: Philippine pork exports (USDA): published rows only, one row per period.
encoding format: text/csv

usda-swine-meat-consumption.csv
type: FileObject
description: Philippine pork consumption (USDA): published rows only, one row per period.
encoding format: text/csv

usda-swine-meat-beginning-stocks.csv
type: FileObject
description: Philippine pork stocks at market-year open (USDA): published rows only, one row per period.
encoding format: text/csv

usda-swine-meat-ending-stocks.csv
type: FileObject
description: Philippine pork stocks at market-year close (USDA): published rows only, one row per period.
encoding format: text/csv

php-usd-average.csv
type: FileObject
description: Peso-dollar rate, monthly average: published rows only, one row per period.
encoding format: text/csv

baboyph-industry.parquet
type: FileObject
description: Every published row of all 59 series stacked under one schema, typed.
encoding format: application/vnd.apache.parquet

prices
type: RecordSet
description: The curated quarterly figure this site quotes as its headline price, assembled by hand from PSA releases and trade reporting before the machine-retrieved series below existed. It also carries this archive's retraction record: rows the site once published, could not source, and withdrew in the July 2026 audit.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: prices.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: prices.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: prices.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: prices.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: prices.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: prices.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: prices.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: prices.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: prices.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: prices.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: prices.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: prices.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: prices.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: prices.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: prices.csv
  extract:
    column: citation

asf-active
type: RecordSet
description: The national count of barangays with active African swine fever, as BAI reported it. The source stopped — no national figure has been published since 8 May 2026 — so the count is left where it stopped rather than carried forward. Individual outbreaks are still reported and are recorded separately.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: asf-active.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: asf-active.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: asf-active.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: asf-active.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: asf-active.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: asf-active.csv
  extract:
    column: citation

herd
type: RecordSet
description: PSA's annual head count of the national herd, all classes. One reading a year, and the slowest-moving number on this site.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: herd.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: herd.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: herd.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: herd.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: herd.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: herd.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: herd.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: herd.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: herd.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: herd.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: herd.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: herd.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: herd.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: herd.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: herd.csv
  extract:
    column: citation

feed-trend
type: RecordSet
description: What a sack of premium grower/finisher feed costs per kilo, from dated retailer listings. One retailer on one day, and labelled as such: nobody publishes a national finished-feed price, and a trend line through a single point is not a trend.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-trend.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-trend.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-trend.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-trend.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-trend.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-trend.csv
  extract:
    column: citation

hog-farmgate-average
type: RecordSet
description: PSA's monthly farmgate price for hogs for slaughter across all farm types. The newest of PSA's three populations — this table begins in 2025, where the other two reach back to 2010.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-average.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-average.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-average.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-average.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-average.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-average.csv
  extract:
    column: citation

hog-farmgate-household
type: RecordSet
description: PSA's monthly farmgate survey of household farms — the backyard population most people reading this site belong to. Monthly since January 2010, and the longest continuous price series here.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-household.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-household.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-household.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-household.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-household.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-household.csv
  extract:
    column: citation

hog-farmgate-establishment
type: RecordSet
description: PSA's monthly farmgate survey of commercial establishments. The same commodity as the backyard series and a different population: the two are never averaged, and the gap between them is published as its own series instead.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-establishment.csv
  extract:
    column: citation

hog-farmgate-average-regional
type: RecordSet
description: 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.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-average-regional.csv
  extract:
    column: citation

hog-farmgate-household-regional
type: RecordSet
description: The backyard survey across every Philippine region and province, monthly since 2010. The largest thing in this archive, and the reason a single national average is close to useless as a planning number: the dearest region and the cheapest are further apart than most people think the whole market moves in a year.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-household-regional.csv
  extract:
    column: citation

hog-farmgate-establishment-regional
type: RecordSet
description: The commercial survey across every Philippine region and province. Close to half its rows carry no figure, and that is not a gap in the retrieval: PSA publishes a provincial commercial price only where there are establishments to survey, and the blanks are where there are not.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-establishment-regional.csv
  extract:
    column: citation

swine-inventory-total
type: RecordSet
description: PSA's count of every pig in the country on the first morning of each quarter, all farm classifications together, from 01 January 2010. It measures the herd rather than what the herd costs, which nothing else here does.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: swine-inventory-total.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: swine-inventory-total.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: swine-inventory-total.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: swine-inventory-total.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: swine-inventory-total.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: swine-inventory-total.csv
  extract:
    column: citation

swine-inventory-smallhold
type: RecordSet
description: The backyard herd counted on its own. Close to four fifths of the national inventory sits in this classification, which is why a commercial-farm figure quoted as a national one is wrong by a margin nobody checks.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: swine-inventory-smallhold.csv
  extract:
    column: citation

swine-inventory-semicommercial
type: RecordSet
description: The smallest of the three classifications and the one that swings hardest. PSA created it when it retired the old Backyard/Commercial split, so it has no counterpart in the 2013-2020 series.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: swine-inventory-semicommercial.csv
  extract:
    column: citation

swine-inventory-commercial
type: RecordSet
description: The commercial herd on the same quarterly morning. Read beside the smallhold count rather than instead of it: the two populations came back from African swine fever at visibly different speeds.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: swine-inventory-commercial.csv
  extract:
    column: citation

swine-inventory-legacy-total
type: RecordSet
description: The national herd as counted on the first morning of January each year, under the farm-type classification PSA used until 2020. Its own highest reading is a January 2020 one, after ASF arrived and before it reached the commercial sector in force. It is NOT the highest the national herd has been: the successor series begins three years earlier and counts higher, which is why nothing here calls this table a peak. PSA still labels its final year preliminary and has not published the table since; the successor series counts by farm size instead and the two schemes must not be joined.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: swine-inventory-legacy-total.csv
  extract:
    column: citation

swine-inventory-legacy-backyard
type: RecordSet
description: The backyard half of the retired classification. Not the same population as the smallhold series, which is exactly why they are kept apart: PSA moved the boundary when it replaced the scheme, so a farm that counted as backyard in 2020 is not necessarily smallhold now.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: swine-inventory-legacy-backyard.csv
  extract:
    column: citation

swine-inventory-legacy-commercial
type: RecordSet
description: The commercial half of the retired classification, 2013 to 2020. Its successor splits the same farms across Semi-Commercial and Commercial, so the old and new lines do not meet and are never drawn as one.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: swine-inventory-legacy-commercial.csv
  extract:
    column: citation

hog-production-national
type: RecordSet
description: Quarterly hog production in liveweight tonnes, back to 1997. The commodity sits two dots deep in PSA's dimension: `LIVESTOCK1/` at depth zero is the sum over hogs, cattle, carabao, goats and dairy, and reading that as hogs overstates production by roughly a third.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-production-national.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-production-national.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-production-national.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-production-national.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-production-national.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-production-national.csv
  extract:
    column: citation

hog-production-regional
type: RecordSet
description: The same quarterly volume across all eighteen regions, back to 2000. PSA declares its unit here as plain metric ton where the national table of the same commodity says metric ton liveweight, so the two are charted together only with that difference stated. The regional split is the only way to watch the ASF collapse arrive one region at a time.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-production-regional.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-production-regional.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-production-regional.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-production-regional.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-production-regional.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-production-regional.csv
  extract:
    column: citation

hog-slaughtered
type: RecordSet
description: Hogs slaughtered in registered slaughterhouses each quarter since 1987. Registered is the word doing the work here: backyard slaughter falls outside it, so this follows the commercial chain rather than what the country eats.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-slaughtered.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-slaughtered.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-slaughtered.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-slaughtered.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-slaughtered.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-slaughtered.csv
  extract:
    column: citation

pork-retail-psa-kasim
type: RecordSet
description: PSA's monthly national average retail price for fresh pork kasim. Set against `hog-farmgate-average` it gives the farmer's share directly, and the gap is wider than most people assume.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-retail-psa-kasim.csv
  extract:
    column: citation

pork-retail-psa-liempo
type: RecordSet
description: Monthly national average for fresh liempo, the dearest of the four cuts PSA prices and the one that moves most with import volume.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-retail-psa-liempo.csv
  extract:
    column: citation

pork-retail-psa-meat-with-bones
type: RecordSet
description: Monthly national average for fresh pork sold bone-in. The cheapest of the four, and the one most households actually put in the basket.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-retail-psa-meat-with-bones.csv
  extract:
    column: citation

pork-retail-psa-pata-fore
type: RecordSet
description: Monthly national average for fresh front pata. Worth keeping because it tracks the other cuts least closely, which makes it a check on whether a swing is the whole market or just one cut.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-retail-psa-pata-fore.csv
  extract:
    column: citation

pork-wholesale-sabit-ulo
type: RecordSet
description: BAI's weekly wholesale price for sabit ulo, read out of the price monitoring PDF one dated report at a time. A wholesale price, several market levels above the farmgate price a raiser is paid — never the same line.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-wholesale-sabit-ulo.csv
  extract:
    column: citation

pork-retail-liempo
type: RecordSet
description: What liempo costs at retail, weekly, from BAI's price monitoring. This is the number that shows up in the news when pork prices are a story, and it is roughly twice what the farmgate series beside it says a raiser was paid the same week.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-retail-liempo.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-retail-liempo.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-retail-liempo.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-retail-liempo.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-retail-liempo.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-retail-liempo.csv
  extract:
    column: citation

pork-retail-kasim
type: RecordSet
description: What kasim costs at retail, weekly, from BAI's price monitoring. Cheaper than liempo every week of the archive, and the cut most households actually buy.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-retail-kasim.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-retail-kasim.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-retail-kasim.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-retail-kasim.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-retail-kasim.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-retail-kasim.csv
  extract:
    column: citation

pork-frozen-liempo
type: RecordSet
description: BAI's weekly price for frozen liempo, which it prices in its own table beside the fresh cut. A different product at a different price, not a second opinion on the same one.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-frozen-liempo.csv
  extract:
    column: citation

pork-frozen-kasim
type: RecordSet
description: BAI's weekly price for frozen kasim. The cheapest pork in the report most weeks, and the one imports compete on.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: pork-frozen-kasim.csv
  extract:
    column: citation

hog-farmgate-bai-backyard
type: RecordSet
description: BAI's own weekly farmgate price for backyard hogs — a second agency measuring what PSA measures, at four times the cadence. BAI stopped printing a figure in this column after 22 July 2024 and has printed N/A every week since; the dated blanks are kept, because when a source went quiet is itself a fact.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-bai-backyard.csv
  extract:
    column: citation

hog-farmgate-bai-commercial
type: RecordSet
description: BAI's own weekly farmgate price for commercial hogs. It ran thirteen months longer than the backyard column beside it and stopped the same way, after 25 August 2025.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-bai-commercial.csv
  extract:
    column: citation

hog-farmgate-average-quarterly
type: RecordSet
description: The quarterly mean of PSA's all-farms monthly rows, computed from this archive with the arithmetic attached to every row. A quarter missing a month has no mean and says which month is missing.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-average-quarterly.csv
  extract:
    column: citation

hog-farmgate-household-quarterly
type: RecordSet
description: The quarterly mean of PSA's backyard monthly rows. This is the shape the headline figure is quoted in, and computing it here rather than by hand is what makes a stale headline something a gate can notice.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-household-quarterly.csv
  extract:
    column: citation

hog-farmgate-establishment-quarterly
type: RecordSet
description: The quarterly mean of PSA's commercial monthly rows. Sixteen quarters between 2010 and 2013 have no mean at all, because PSA published nothing for those months and the average of the months it did publish is a different quantity.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: hog-farmgate-establishment-quarterly.csv
  extract:
    column: citation

backyard-commercial-spread
type: RecordSet
description: Backyard farmgate minus commercial farmgate, monthly, computed from two PSA populations that neither agency subtracts from each other. A difference between two sources is a real artifact; an average of them would be a price nobody surveyed.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: backyard-commercial-spread.csv
  extract:
    column: citation

feed-ingredient-corn-yellow
type: RecordSet
description: The single biggest line in a hog ration and the one that moves a sack price fastest. Weekly since January 2023, and the only official Philippine corn price published more often than monthly.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-corn-yellow.csv
  extract:
    column: citation

feed-ingredient-sbm-argentina
type: RecordSet
description: Argentine soybean meal, the cheaper of the two imported protein sources BAI tracked. BAI stopped printing this column after 2025-10-20 and has printed N/A every week since. The readings and the dated nulls that follow them are both kept, so the week it went quiet is itself citable.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-sbm-argentina.csv
  extract:
    column: citation

feed-ingredient-sbm-fullfat
type: RecordSet
description: Full-fat soya, which carries its own oil and so prices well above the extracted meals beside it. Weekly and unbroken since January 2023.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-sbm-fullfat.csv
  extract:
    column: citation

feed-ingredient-sbm-us
type: RecordSet
description: US soybean meal, the protein benchmark most Philippine formulations are actually costed against. The one to watch beside yellow corn: between them they are most of the cost of a grower ration.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-sbm-us.csv
  extract:
    column: citation

feed-ingredient-feedwheat
type: RecordSet
description: Feed-grade wheat, the usual partial substitute when corn runs dear. Weekly and unbroken since January 2023, which makes the corn-to-wheat spread computable for every week of the series.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-feedwheat.csv
  extract:
    column: citation

feed-ingredient-feedwheat-others
type: RecordSet
description: A second feedwheat line BAI printed for other origins. It stopped after 2024-08-12 — the first of the three ingredient columns to go quiet, and the longest dead. Its readings stand, followed by dated nulls carrying the report id that printed each blank.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-feedwheat-others.csv
  extract:
    column: citation

feed-ingredient-local-fishmeal
type: RecordSet
description: Domestically produced fishmeal, the dearest protein in the table. It is also the only series in this archive whose source contradicts itself: on thirteen weeks BAI printed two different This Week prices for it inside one document, and every one of those weeks is a dated null naming each figure and the column that carried it. It stopped after 2026-05-18.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-local-fishmeal.csv
  extract:
    column: citation

feed-ingredient-coco-oil
type: RecordSet
description: Coconut oil as an energy source, and the most volatile line in the table by a wide margin — it has doubled and halved inside the life of this series. A ration that leans on it is exposed to the copra market rather than the grain market.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-coco-oil.csv
  extract:
    column: citation

feed-ingredient-copra-meal
type: RecordSet
description: The cheapest protein source BAI tracks and the one most Philippine backyard rations actually use, because it is local. Weekly and unbroken since January 2023.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-copra-meal.csv
  extract:
    column: citation

feed-ingredient-crude-palm-oil
type: RecordSet
description: Crude palm oil as a ration energy source. READ THE NULLS BEFORE THE FIGURES: BAI printed no price in this column between 2024-11-04 and 2026-01-05, then resumed. A staleness warning on this series has fired before and is not evidence of a parser fault. Two further weeks were printed as a zero peso price, which is a blank rendered as a number and is recorded as no figure.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-crude-palm-oil.csv
  extract:
    column: citation

feed-ingredient-ddgs
type: RecordSet
description: Distillers dried grains with solubles, the ethanol by-product used as a mid-protein energy filler. Weekly and unbroken since January 2023.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-ddgs.csv
  extract:
    column: citation

feed-ingredient-molasses
type: RecordSet
description: Cane molasses, used for palatability and as a binder rather than as a major energy contributor. Weekly and unbroken since January 2023, and the steadiest line in the table.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-molasses.csv
  extract:
    column: citation

feed-ingredient-palm-olein
type: RecordSet
description: The refined fraction of palm oil, priced above the crude line beside it. Weekly and unbroken since January 2023 — which is what makes the crude-versus-refined spread readable even across the fourteen months the crude column was blank.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-palm-olein.csv
  extract:
    column: citation

feed-ingredient-pollard-hard
type: RecordSet
description: Hard wheat pollard, the mill by-product that competes directly with rice bran for the same place in a backyard ration. Weekly and unbroken since January 2023.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-pollard-hard.csv
  extract:
    column: citation

feed-ingredient-rice-bran-d1
type: RecordSet
description: First-class rice bran, the grade most smallholders buy and the one whose price a raiser is most likely to check personally. The widest range in the table relative to its own level: it has more than doubled from trough to peak.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: feed-ingredient-rice-bran-d1.csv
  extract:
    column: citation

world-maize
type: RecordSet
description: The world price of corn, monthly since 1960, from the World Bank's Pink Sheet. It is the number a Philippine feed miller's import cost is negotiated against, and it moves months before a sack price here does. Nominal US dollars — no inflation adjustment, and no peso conversion.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: world-maize.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: world-maize.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: world-maize.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: world-maize.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: world-maize.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: world-maize.csv
  extract:
    column: citation

world-soybean-meal
type: RecordSet
description: The world price of the protein half of a hog ration, monthly since 1960, from the World Bank's Pink Sheet. BAI's Philippine soybean meal columns are landed prices quoted against this one. Nominal US dollars, not converted to pesos.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: world-soybean-meal.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: world-soybean-meal.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: world-soybean-meal.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: world-soybean-meal.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: world-soybean-meal.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: world-soybean-meal.csv
  extract:
    column: citation

usda-swine-meat-production
type: RecordSet
description: USDA's estimate of how much pork the Philippines produced, by market year since 1960. It disagrees with PSA's own production series and is published beside it rather than reconciled with it: the two use different methods and this archive does not average disagreeing sources.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: usda-swine-meat-production.csv
  extract:
    column: citation

usda-swine-meat-imports
type: RecordSet
description: How much pork USDA reckons the Philippines brought in, by market year since 1960. This is the number the import debate is actually about, and it is far larger relative to supply than PSA's import dependency ratio suggests — different methods, both named here, neither averaged.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: usda-swine-meat-imports.csv
  extract:
    column: citation

usda-swine-meat-exports
type: RecordSet
description: Philippine pork leaving the country, by market year since 1960. Nil or nearly nil in most of them, and USDA prints a literal zero both for a quantity that rounds to nothing and for one it does not estimate at all — every such row here says which it is not.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: usda-swine-meat-exports.csv
  extract:
    column: citation

usda-swine-meat-consumption
type: RecordSet
description: How much pork USDA reckons the country ate, by market year since 1960. Production plus imports minus exports and the stock change, which is why it moves with the import series rather than with the herd.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: usda-swine-meat-consumption.csv
  extract:
    column: citation

usda-swine-meat-beginning-stocks
type: RecordSet
description: Cold-store pork on hand when the market year opened, by USDA market year. Small next to production in every year, and the reason the supply and use sides of the balance close.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: usda-swine-meat-beginning-stocks.csv
  extract:
    column: citation

usda-swine-meat-ending-stocks
type: RecordSet
description: Cold-store pork on hand when the market year closed. It is the following year's beginning stocks in every year USDA publishes both, which is one of the things worth checking about a balance sheet.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: usda-swine-meat-ending-stocks.csv
  extract:
    column: citation

php-usd-average
type: RecordSet
description: What a US dollar cost in pesos, month by month since 1945, from BSP's own reference-rate table. It is the rate the archive's dollar-denominated feed prices convert at, and it is BSP's figure rather than the IMF's — the two disagree badly through the decontrol years and this archive does not splice sources together.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: php-usd-average.csv
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: php-usd-average.csv
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: php-usd-average.csv
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: php-usd-average.csv
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: php-usd-average.csv
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: php-usd-average.csv
  extract:
    column: citation

baboyph-industry
type: RecordSet
description: All 59 series in long format, the series id in column one. Take this one if you want the archive whole.
field: series
field: date
field: period
field: value
field: unit
field: geo
field: kind
field: rangeLow
field: rangeHigh
field: source_id
field: source_url
field: accessed_on
field: derivation
field: note
field: citation

series
type: Field
description: The archive id of the series this row belongs to, resolvable at https://baboyph.com/data/<series>. Column one of every file so that a single-series download and the whole-archive download have the identical shape.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: series

date
type: Field
description: The date the reading REFERS TO, not the date it was retrieved. For an annual series this is the resolved reference date: a 31 March inventory filed under 2026 exports as 2026-03-31, not as the year end.
data type: Date
source:
  file object: baboyph-industry.parquet
  extract:
    column: date

period
type: Field
description: The publisher’s own label for the period, such as Q1 2026 or 2026-07. Kept verbatim so a row can be found again in the publication it came from.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: period

value
type: Field
description: NA means the source published no figure for this period. It is never 0 for unknown, never carried forward and never interpolated. Its unit is in the unit column and differs across series, so grouping by series without reading unit gives a nonsense answer.
data type: Float
source:
  file object: baboyph-industry.parquet
  extract:
    column: value

unit
type: Field
description: What the value is measured in, as the source declares it: PHP/kg liveweight, head, metric ton. Carried on the row rather than in the filename because units differ within this archive and, for two PSA production tables of the same commodity, between tables.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: unit

geo
type: Field
description: The geography the reading covers. Empty on a series that has only ever had one. Codes and names follow PSA’s livestock vocabulary; https://baboyph.com/data/geography resolves them, and PSA’s retail price tables use a different numbering that is not translatable by arithmetic.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: geo

kind
type: Field
description: How the figure was arrived at: which survey, or that it is derived. Empty on the oldest hand-built rows.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: kind

rangeLow
type: Field
description: Set when the source published a range. With a value present, the value is the midpoint and this pair is what stops that midpoint being read as a measurement; with value NA, the source published a range and this archive publishes no single figure for it.
data type: Float
source:
  file object: baboyph-industry.parquet
  extract:
    column: rangeLow

rangeHigh
type: Field
description: See rangeLow. The two are always set together or not at all.
data type: Float
source:
  file object: baboyph-industry.parquet
  extract:
    column: rangeHigh

source_id
type: Field
description: The publisher this row was read from, resolvable in the archive’s citation registry and rendered at https://baboyph.com/data/provenance.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: source_id

source_url
type: Field
description: The document or query this row came from. Swept monthly for liveness; a URL that has rotted is recorded and never causes a row to be withdrawn.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: source_url

accessed_on
type: Field
description: The most recent date the source was read for this row. Where it differs from the first reading of that row, the row has been re-read and still says the same thing.
data type: Date
source:
  file object: baboyph-industry.parquet
  extract:
    column: accessed_on

derivation
type: Field
description: Empty on a retrieved row. On a derived one it states what was computed from what: a synthesis figure without its arithmetic is exactly the unsourced number this archive exists to prevent.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: derivation

note
type: Field
description: Anything about this row a reader needs before using it. Prose, and the one place in a row where non-ASCII appears.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: note

citation
type: Field
description: The attribution line, repeated on every row. The unit of loss is the row, not the file: somebody pastes four lines into a group chat and a file-level header does not survive that.
data type: Text
source:
  file object: baboyph-industry.parquet
  extract:
    column: citation