Calculate Supplemental Poverty Measure (SPM) thresholds for any US geography and year.
Try the SPM Threshold Calculator - A static web app that walks you through calculating your SPM threshold based on your household characteristics.
The calculator runs entirely in your browser with no server required - all data is pre-computed and bundled.
Static React App (recommended):
cd web
npm install
npm run dev
Streamlit App (alternative):
pip install spm-calculator[app]
streamlit run app/streamlit_app.py
The SPM threshold is calculated as:
threshold = base_threshold[tenure] × equivalence_scale × geoadj
Where:
- base_threshold varies by housing tenure (renter, owner with mortgage, owner without mortgage), calculated from 5-year rolling Consumer Expenditure Survey data
- equivalence_scale adjusts for family composition using the SPM three-parameter scale
- geoadj adjusts for local housing costs based on ACS median rents
pip install spm-calculator
from spm_calculator import SPMCalculator
# Initialize calculator for a specific year
calc = SPMCalculator(year=2024)
# Get base thresholds by tenure (national, before geographic adjustment)
base = calc.get_base_thresholds()
# {'renter': 39430, 'owner_with_mortgage': 39068, 'owner_without_mortgage': 32586}
# Get GEOADJ for a specific geography
geoadj = calc.get_geoadj("congressional_district", "0612") # CA-12
# 1.24 (24% above national average due to high housing costs)
# Calculate threshold for a specific family in a specific location
threshold = calc.calculate_threshold(
num_adults=2,
num_children=2,
tenure="renter",
geography_type="congressional_district",
geography_id="0612"
)
# ~$48,893 (base $39,430 × equiv_scale 1.0 × geoadj 1.24)
nation- National averagestate- 50 states + DCcounty- ~3,200 countiesmetro_area- Metropolitan statistical areascongressional_district- 435 congressional districtspuma- Public Use Microdata Areastract- Census tracts (limited availability)
- Base thresholds: BLS Consumer Expenditure Survey - 5-year rolling FCSUti (Food, Clothing, Shelter, Utilities, telephone, internet)
- Geographic adjustment: ACS 5-Year Estimates - Table B25031 (Median Gross Rent by Bedrooms)
- Methodology: Census SPM Technical Documentation
Following BLS methodology (updated September 2021):
- Download 5 years of CE Survey PUMD (Public Use Microdata)
- Filter to consumer units with children
- Calculate FCSUti expenditures
- Convert to reference family (2 adults, 2 children) using equivalence scale
- Calculate 83% of median (47th-53rd percentile average) by tenure type
Following Census methodology:
GEOADJ = (local_median_rent / national_median_rent) × 0.492 + 0.508
Where 0.492 is the housing portion of the SPM threshold for renters.
The SPM uses a three-parameter equivalence scale:
- First adult: 1.0
- Additional adults: 0.5 each
- Children: 0.3 each
- Normalized to reference family (2A2C = 1.0)
Base thresholds are validated against BLS published values:
| Tenure | 2024 BLS | Calculator |
|---|---|---|
| Renter | $39,430 | $39,430 |
| Owner w/ mortgage | $39,068 | $39,068 |
| Owner w/o mortgage | $32,586 | $32,586 |
MIT License - see LICENSE for details.
Contributions welcome! Please see CONTRIBUTING.md for guidelines.