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
Homepage:www.bls.gov/cpi/
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
Homepage:fred.stlouisfed.org/series/GDPC1
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
Homepage:fred.stlouisfed.org/series/AHETPI
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
Homepage:www.eia.gov/petroleum/gasdiesel/
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
Homepage:fred.stlouisfed.org/series/FYFSD
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
Homepage:www.bls.gov/cps/
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
- Run
pnpm run fetch:cpi
to update inflation data from BLS - Update WID CSV files in
data/wid/
from latest WID exports - Run
pnpm run wid:extract:income
to extract P50/P90 data - Run
pnpm run fetch:income-gap
to compute income gap metrics - 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