Data Sources & Methodology

Transparent documentation of all data sources, processing scripts, and methodologies used to create the charts and comparisons in Statmerica.

Data Sources

Consumer Price Index (CPI)
Year-over-year inflation rates tracking price changes in goods and services

Source

Organization: U.S. Bureau of Labor Statistics
Series: CUUR0000SA0
Coverage: 1980–2025
Frequency: Annual (Dec), plus current-year latest month

Credibility & Impartiality

Processing

pnpm run fetch:cpi
data/cpi.json
Attribution: Public domain

Methodology

  • Fetch CPI-U series from BLS
  • Compute December YoY for 1980–2024
  • Append current-year latest month YoY

Chart Usage

  • Inflation Rate card (YoY)
Homeownership
Quarterly Census homeownership rate; annualized with Q4 and latest quarter

Source

Organization: Federal Reserve Bank of St. Louis (FRED)
Series: RHORUSQ156N
Coverage: 1980–2025
Frequency: Annual (Q4), plus latest quarter

Credibility & Impartiality

Processing

pnpm run fetch:homeownership
data/homeownership.json
Attribution: Public domain

Methodology

  • Fetch FRED RHORUSQ156N (quarterly)
  • Select Q4 values for 1980–2024 and compute YoY
  • Append latest quarter and YoY vs same quarter prior year

Chart Usage

  • Homeownership Rate card (YoY, Percent)
Life Expectancy at Birth (US)
Annual life expectancy in years; includes YoY percent change

Source

Organization: World Bank
Series:
Coverage: 1979–2023
Frequency: Annual

Credibility & Impartiality

Processing

pnpm run fetch:life-expectancy
data/life_expectancy.json
Attribution: World Bank Open Data

Methodology

  • Fetch World Bank SP.DYN.LE00.IN (USA)
  • Filter to 1979+ and compute YoY

Chart Usage

  • Life Expectancy card (YoY, Years)
Real GDP (Chained 2017 $, SAAR)
Q4 real GDP levels with YoY vs prior Q4; includes latest quarter

Source

Organization: Federal Reserve Bank of St. Louis (FRED) / BEA
Series: GDPC1
Coverage: 1980–2025
Frequency: Annual (Q4), plus current-year latest quarter

Credibility & Impartiality

Processing

pnpm run fetch:gdp
data/gdp.json
Attribution: Public domain

Methodology

  • Fetch FRED GDPC1 quarterly real GDP
  • Select Q4 values for 1980–2024 and compute YoY
  • Append latest quarter and YoY vs same quarter prior year

Chart Usage

  • GDP Growth card (YoY, USD billions SAAR)
Federal Debt / GDP Ratio
Q4 federal Debt / GDP ratio (%), YoY vs prior Q4; includes latest quarter

Source

Organization: Federal Reserve Bank of St. Louis (FRED)
Series: GFDEGDQ188S
Coverage: 1980–2025
Frequency: Annual (Q4), plus current-year latest quarter

Credibility & Impartiality

Processing

pnpm run fetch:debt-to-gdp
data/debt_to_gdp.json
Attribution: Public domain

Methodology

  • Fetch FRED GFDEGDQ188S quarterly Debt/GDP %
  • Select Q4 values for 1980–2024 and compute YoY
  • Append latest quarter and YoY vs same quarter prior year

Chart Usage

  • Debt / GDP Ratio card (YoY, Percent)
Household Income
Real median household income (constant dollars) with YoY

Source

Organization: FRED (Census via FRED) + WID (P50 growth for backfill)
Series:
Coverage: 1979–2023
Frequency: Annual

Credibility & Impartiality

Processing

pnpm run fetch:household-income
data/household_income.json
Attribution: Public domain; backfill heuristic uses P50 growth as proxy.

Methodology

  • Fetch FRED real median household income (1984+)
  • Backfill 1979–1983 chaining P50 growth
  • Compute YoY on real income level

Chart Usage

  • Household Income card (YoY, USD)
Wages
Real average hourly earnings (production & nonsupervisory), CPI-adjusted

Source

Organization: FRED / BLS
Series:
Coverage: 1980–2025
Frequency: Annual (Dec), plus latest month

Credibility & Impartiality

Processing

pnpm run fetch:wages
data/wages.json
Attribution: Public domain

Methodology

  • Fetch FRED AHETPI and CPIAUCSL (monthly)
  • Deflate AHE by CPI to get real hourly earnings
  • Use December values for 1980–2024 and compute YoY; append latest month

Chart Usage

  • Wages card (YoY, USD/hr)
Gas Prices (Regular, Retail)
Average retail gasoline price; annual averages with latest observation

Source

Organization: U.S. Energy Information Administration
Series: PET.EMM_EPMRR_PTE_NUS_DPG.M
Coverage: 1979–2025
Frequency: Annual (avg value + yoy), plus latest point

Credibility & Impartiality

Processing

pnpm run fetch:gas
data/gas_prices.json
Attribution: Public domain

Methodology

  • Fetch EIA gas price series (monthly/weekly)
  • Compute annual averages and YoY
  • Backfill early years from BLS if needed

Chart Usage

  • Gas Prices card (YoY, USD/gal)
Income Gap (P90/P50 Ratio)
Income inequality measured as ratio of 90th percentile to median income

Source

Organization: World Inequality Database (derived)
Homepage:wid.world/
Series:
Coverage: 1980–2025
Frequency: Annual

Credibility & Impartiality

Processing

pnpm run fetch:income-gap
data/income_gap.json
Attribution: Derived from WID P50/P90 income series

Methodology

  • Read P50/P90 USD levels
  • Extrapolate 2024–2025 using last 3-year growth
  • Compute ratio (P90/P50) and YoY

Chart Usage

  • Wealth/Income Gap card (YoY, Ratio)
S&P 500 Index
December closes and latest close; includes YoY % change (Stooq ^spx)

Source

Organization: Stooq
Homepage:stooq.com
Series: ^spx
Coverage: 1980–2025
Frequency: Annual (Dec), plus latest close

Credibility & Impartiality

Processing

pnpm run fetch:sp500
data/sp500.json
Attribution: Stooq free data

Methodology

  • Fetch Stooq ^spx (daily)
  • Select last trading day in December for 1980–2024
  • Append latest close and compute YoY vs ~same date prior year

Chart Usage

  • S&P 500 Index Growth card (YoY, Index)
Federal Budget Deficit (FY)
Annual deficit magnitude (outlays minus receipts), fiscal year

Source

Organization: FRED (FYFSD) β€” Federal Surplus or Deficit (-), Fiscal Year
Series:
Coverage: 1979–2024
Frequency: Annual (FY)

Credibility & Impartiality

Processing

pnpm run fetch:deficit
data/deficit.json
Attribution: Federal Reserve Bank of St. Louis

Methodology

  • Fetch FRED FYFSD annual surplus/deficit (fiscal year, billions)
  • Convert to positive deficit magnitudes (absolute value)
  • Compute YoY on deficit level

Chart Usage

  • Federal Deficit card (YoY, USD billions)
Unemployment Rate (U-3, SA)
Monthly unemployment rate stored as December values plus latest month; includes YoY.

Source

Organization: U.S. Bureau of Labor Statistics
Series: LNS14000000
Coverage: 1980–2025
Frequency: Monthly (stored as annual Dec + latest)

Credibility & Impartiality

Processing

pnpm run fetch:unemployment
data/unemployment.json
Attribution: Public domain

Methodology

  • Fetch BLS CPS unemployment rate series (LNS14000000, SA)
  • Select December values to form annual series (1980–2024)
  • Append current-year latest month vs same month prior year

Chart Usage

  • Unemployment Rate card (YoY, Percent)

Data Processing Scripts

fetch:nasdaq
Fetches NASDAQ Composite from FRED; builds annual Dec + latest YoY

Command

pnpm run fetch:nasdaq

File

scripts/fetch-sp500.mjs

Parameters

  • --series NASDAQCOM (default)
  • --series SP500

Environment Variables

  • FRED_API_KEY (required)

Output

data/sp500.json
fetch:cpi
Fetches Consumer Price Index data from BLS Public API

Command

pnpm run fetch:cpi

File

scripts/fetch-cpi.mjs

Parameters

  • --series cuur|cusr (default: cuur)

Environment Variables

  • BLS_API_KEY (optional, increases rate limits)

Output

data/cpi.json
fetch:gas
Fetches U.S. regular gasoline prices from EIA (with BLS backfill)

Command

pnpm run fetch:gas

File

scripts/fetch-gas-prices.mjs

Environment Variables

  • EIA_API_KEY (required)
  • BLS_API_KEY (optional for backfill)

Output

data/gas_prices.json
wid:extract:income
Extracts US income data (P50, P90) from WID CSV files

Command

pnpm run wid:extract:income

File

scripts/wid-extract-income-us.mjs

Parameters

  • --dir PATH (default: data/wid)
  • --debug

Output

data/us_income_p50.csv, data/us_income_p90.csv
fetch:income-gap
Builds income gap ratios and YoY changes from P50/P90 CSVs

Command

pnpm run fetch:income-gap

File

scripts/fetch-income-gap.mjs

Output

data/income_gap.json
fetch:deficit
Aggregates Treasury MTS receipts/outlays into annual federal deficit

Command

pnpm run fetch:deficit

File

scripts/fetch-deficit.mjs

Output

data/deficit.json
fetch:unemployment
Fetches unemployment rate (BLS CPS) and computes Dec YoY

Command

pnpm run fetch:unemployment

File

scripts/fetch-unemployment.mjs

Environment Variables

  • BLS_API_KEY (optional, increases rate limits)
  • --series lns (default)

Output

data/unemployment.json
fetch:gdp
Fetches real GDP (GDPC1) and builds annual Q4 + latest quarter

Command

pnpm run fetch:gdp

File

scripts/fetch-gdp.mjs

Output

data/gdp.json
fetch:debt-to-gdp
Fetches Debt/GDP ratio (GFDEGDQ188S) and builds annual Q4 + latest

Command

pnpm run fetch:debt-to-gdp

File

scripts/fetch-debt-to-gdp.mjs

Output

data/debt_to_gdp.json
fetch:household-income
Builds Household Income: real median HH income with 1979–83 backfill

Command

pnpm run fetch:household-income

File

scripts/fetch-household-income.mjs

Output

data/household_income.json
fetch:wages
Computes Real Wages: deflates AHETPI by CPI; Dec + latest YoY

Command

pnpm run fetch:wages

File

scripts/fetch-wages.mjs

Environment Variables

  • FRED_API_KEY (optional)

Output

data/wages.json
fetch:homeownership
Fetches Homeownership Rate (RHORUSQ156N), annualizes by Q4, adds latest quarter

Command

pnpm run fetch:homeownership

File

scripts/fetch-homeownership.mjs

Output

data/homeownership.json
fetch:life-expectancy
Fetches Life Expectancy at birth (World Bank) and computes YoY

Command

pnpm run fetch:life-expectancy

File

scripts/fetch-life-expectancy.mjs

Output

data/life_expectancy.json
Data Update Process
How to refresh data sources and maintain data quality

Update Workflow

  1. Run pnpm run fetch:cpi to update inflation data from BLS
  2. Update WID CSV files in data/wid/ from latest WID exports
  3. Run pnpm run wid:extract:income to extract P50/P90 data
  4. Run pnpm run fetch:income-gap to compute income gap metrics
  5. Verify data integrity and rebuild application

Data Quality

  • All raw data sources are preserved in their original format
  • Processing scripts are deterministic and repeatable
  • Data transformations are documented and version controlled
  • Extrapolations for future years are clearly marked and explained