Methodology

Commodity-price data

How Warconomy sources commodity-price history: the FAO Food Price Index (machine-read from the official free CSV), the World Bank Pink Sheet and FRED as future options, nominal-vs-real prices, revisions, event annotations, and why Warconomy does not claim sole causation.

Free, official, source-reviewed — and not causalThe commodity history uses free, official, machine-readable public data — no paid APIs, no API keys. Movements around conflict periods are shown as associative context, never as a claim that an event was the sole cause.

Source hierarchy

  • FAO Food Price Index (in use). The official FAO Food Price Index publishes a free monthly CSV (headline index + meat, dairy, cereals, vegetable oils, sugar; basis 2014-2016 = 100). Warconomy machine-reads it with npm run commodities:ingest into a committed snapshot (1990-012026-05, 437 months, accessed June 10, 2026). Nothing is transcribed by hand or invented.
  • World Bank “Pink Sheet” (in use). The World Bank publishes a free monthly commodity-price workbook (nominal US$). The price levels live in a binary XLSX, so Warconomy reads it with a small pure-Node unzip+XML parser (no third-party dependency, no key) via npm run commodities:ingest:worldbank, selecting conflict-sensitive series — crude oil (Brent, WTI), natural gas (US, Europe), wheat, maize, rice, and fertilizers (DAP, urea) — into a committed snapshot. Units differ by commodity and are preserved per-series.
  • FRED (future option). FRED hosts many commodity series, but its API needs a key, and Warconomy does not commit API keys or use paid/keyed services — so FRED stays a manual reference for now, not an automated source.

Index vs. price level

Two different things, never mixed on one axis. The FAO data is an index (unitless, basis 2014-2016 = 100) — it shows relative movement. The World Bank data is a price level in nominal US$ per physical unit ($/bbl for oil, $/mmbtu for gas, $/mt for grains and fertilizer). Each chart states its own unit.

Nominal vs. real prices

Both series here are nominal (current-price): the FAO index on basis 2014-2016 = 100, and the World Bank prices in nominal US$. Real (inflation-adjusted) series exist but are not shown; nominal and real are not interchangeable, and Warconomy labels the basis.

Units, frequency & revisions

Values are an index (2014-2016 = 100), not currency, and are monthly. FAO revises recent months as data firms up, so the latest points can change between refreshes. Each snapshot records its accessed/reviewed date.

Event annotations

Charts mark dated events that already exist in the Warconomy dataset (e.g. the start of the full-scale invasion of Ukraine). They are reference lines: prices moved around those periods for many reasons, and Warconomy does not attribute a move to a single event unless an official source explicitly does.

Why not “the war caused the price spike”

Food prices respond to weather, energy costs, currencies, trade policy, stocks, and demand together. Showing a price line next to an event date is honest context; asserting sole causation is not. Warconomy phrases this as price movement around conflict periods.

How the refresh works (automated vs. reviewed)

npm run commodities:ingest fetches the FAO page, finds the official CSV link, parses the six series, validates them (numeric, date-ordered, de-duplicated), and writes the committed snapshot. npm run commodities:ingest:worldbank does the same for the World Bank XLSX (pure-Node unzip, selected series). Both are on-demand — not run during the build or in normal validation — so a flaky network or a changed file never breaks a deploy. The source watch tracks when a new FAO release is likely; a human runs the refresh and reviews the result. “Build it and forget it” is close, but an occasional review is needed in case FAO changes the file format or URL.

Limitations

  • One source family (FAO food indices) so far; broader commodities (oil, gas, fertilizer levels) await an accessible non-binary source.
  • Monthly and revisable — not real-time, not tick data, not investment data.
  • Associative only — never a causal attribution.

See the food price history charts, the data export, and the food-prices economic-impact page.