Live
Bellwether

About the data

How accurate is this?

Bellwether is a data product. Its credibility rests on showing you, for every number on the screen, where the number came from and when it was last verified. This page is the ledger.

"100% accurate" is not literally achievable — FRED revises history, ISM revises the latest month after the fact, and the hand-curated content here involves editorial judgment. What we commit to instead is named provenance, recent verification, and visible caveats where reconciliation isn't possible.

Synthetic-data status.

Vestigial — informational only

6 legacy ISM FRED stubs ship as synthetic. These are the NAPM composite plus its five subindices — exactly the IDs FRED removed in June 2016 at ISM's request. The app reads the Wayback-scraped files (data/pmi-wayback.json + data/pmi-subindices-wayback.json) instead, so these stubs are inert and not user-facing. No script can replace them.

Time series

The timeline spine is INDPRO (Industrial Production: Total Index) from FRED, shown as year-over-year % change. INDPRO covers the full 1948→present window and is freely redistributable. IPMAN (Manufacturing only) is also pulled from FRED for the period FRED carries it (1972→present). The legacy PMI series remains in the repo as a synthetic placeholder; FRED removed all 22 ISM series in June 2016 when ISM tightened redistribution licensing.

For real PMI values we maintain three files. The bulk historical series in data/pmi-historical.json mirrors the Financial Forecast Center page and carries 800 observations from 1948-01 through 2014-08 — that page froze in August 2014. data/pmi-wayback.json fills the modern era from primary ISM Manufacturing Report on Business pages captured by the Internet Archive ( 82 observations, 2014-09 → 2026-08, with a structural 2015-04 → 2020-05 gap where ISM's monthly ROB URLs weren't reliably indexed by Wayback). Wayback typically trails the live release by several months; recent headline prints are ingested instead from ISM's monthly press releases on PRNewswire and stored in data/pmi-curated.json (82 obs, latest 2026-09; refresh with npm run import-prnewswire). Curated rows win over Wayback and the historical mirror on date overlap. Each row in any of the three files carries its own sourceUrl. The current-state panel on the homepage shows the merged view, the import workflows are documented in data/CONTRIBUTING.md, and the legal posture (Feist + ISM attribution) is documented in data/LICENSING.md.

The five ISM ( , , , , ) are extracted from the same Wayback pages and stored together in data/pmi-subindices-wayback.json (82 rows each). The /decompose mode reads from this file directly rather than the synthetic FRED placeholders. The /heatmap mode's 18 Pandemic-regime cells are derived from data/industry-monthly-wayback.json, which records the per-month growth/contraction industry lists from the same pages (81 months · 18 industries).

Services / NMI series

The (formerly ) is on the same Wayback-plus-press-release pattern as Manufacturing, with one omission: there is no third-party historical mirror for the 1997–~2014 backfill yet, so coverage before late 2014 is sparse. data/nmi-wayback.json carries 81 observations (2014-09 → 2026-08); the four headline subindices (, , , ) live alongside in data/nmi-subindices-wayback.json (81 rows each). Current-vintage headline prints come from ISM's monthly press releases on PRNewswire and live in data/nmi-curated.json (14 obs, latest 2026-09; refresh alongside Manufacturing via npm run import-prnewswire). Subindex breakdowns for those recent months are still Wayback-only until the press-release scraper is extended to parse subindex tables.

SeriesProvenanceLatest obs.VerifiedN
NMI / Services PMI Composite (Wayback archive of ISM ROB pages)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1081
ISM Services Business Activity Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1081
ISM Services New Orders Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1081
ISM Services Employment Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1081
ISM Services Supplier Deliveries Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1081
NMI / Services PMI Composite (PRNewswire press releases, curated)Hand-curated from primary sources2026-09-012026-10-1014
SeriesProvenanceLatest obs.VerifiedN
INDPRO (Industrial Production: Total)FRED (Federal Reserve Bank of St. Louis)2026-08-012026-10-10944
IPMAN (Industrial Production: Manufacturing)FRED (Federal Reserve Bank of St. Louis)2026-08-012026-10-10656
PMI Composite (NAPM, FRED placeholder)Synthetic — development placeholder2026-04-012026-05-04940
PMI Composite (forecasts.org mirror, 1948→2014)Third-party mirror (factual values, ISM as primary origin)2014-08-012026-05-06800
PMI Composite (Wayback archive of ISM ROB pages)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1082
PMI Composite (PRNewswire press releases, curated)Hand-curated from primary sources2026-09-012026-10-1082
ISM Manufacturing: New Orders Index (FRED placeholder)Synthetic — development placeholder2026-04-012026-05-04940
ISM Manufacturing: Production Index (FRED placeholder)Synthetic — development placeholder2026-04-012026-05-04940
ISM Manufacturing: Employment Index (FRED placeholder)Synthetic — development placeholder2026-04-012026-05-04940
ISM Manufacturing: Supplier Deliveries Index (FRED placeholder)Synthetic — development placeholder2026-04-012026-05-04940
ISM Manufacturing: Inventories Index (FRED placeholder)Synthetic — development placeholder2026-04-012026-05-04940
ISM Manufacturing New Orders Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1082
ISM Manufacturing Production Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1082
ISM Manufacturing Employment Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1082
ISM Manufacturing Supplier Deliveries Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1082
ISM Manufacturing Inventories Index (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1082
Industry-level monthly growth/contraction lists (Wayback)Wayback Machine archive of primary ISM Report on Business2026-08-012026-10-1081
Effective Federal Funds RateFRED (Federal Reserve Bank of St. Louis)2026-09-012026-10-10867

Recession periods (NBER)

12 periods, hand-curated from the NBER Business Cycle Dating Committee's announcements. Each period is anchored to its public announcement URL;scripts/verify-nber.ts checks every link is reachable.

Last verified 2026-05-04 · provenance: NBER Business Cycle Dating Committee

Sector heatmap

18 industries × 5 policy regimes = 90 cells. 18 cells are computed from primary ISM monthly Reports on Business (the 18 Pandemic & Reshoring cells, derived from per-month industry growth/contraction lists scraped via the Wayback Machine archive). The remaining 72 cells are hand estimates drawn from monthly ISM commentary — not direct ISM industry-level data — because comparable per-month data isn't publicly archived for the Bretton Woods, Stagflation, Great Moderation, or Crisis & Recovery eras. Cells render an Estimate badge accordingly.

Last verified 2026-05-04 · breakdown: 72 Hand estimate · 18 Wayback / ISM monthly reports

Policy events & interpretations

9 policy events on the timeline. Each is required by the schema to carry at least one primary source (a government release, the policy text, or a peer-reviewed paper), plus a verification date. Economist interpretations are summaries of published positions — the source list under each card is where you go to verify.

How to spot an error

The schema rejects data without provenance, primary citations, or verification dates at load time, so silent regressions are unlikely. A monthly GitHub Actions cron (.github/workflows/data-refresh.yml) re-pulls FRED snapshots after each ISM release; the per-row source URL plus the strict-mode freshness test (STRICT_DATA_CHECKS=1 npm run check-data) catch most drift. If you spot a number that looks wrong, please open an issue with the cell, the value you see, and the source you're comparing to.

Want to read the editorial method? That's a separate page.