Methodology
Last updated May 2025 · Source on GitHub
Overview
The Consumer Compass headline score is a weighted composite of 7 sub-scores covering ~30 indicators sourced entirely from free U.S. government APIs (FRED, BLS, BEA, NY Fed, SEC EDGAR). Each indicator is converted to a 0–100 score using an expanding-window percentile rank — its current value is ranked against all historical values back to 1990. This eliminates look-ahead bias and ensures the score is directly comparable across time.
Percentile Transform
For each indicator at time t, the score is:
- Higher-is-better indicators (e.g., payrolls, savings rate): higher percentile = higher score.
- Lower-is-better indicators (e.g., unemployment, delinquency): percentile is inverted (100 − percentile).
- CPI indicators: scored by proximity to 2% — the absolute distance |YoY − 2%| is ranked; lower distance scores higher.
- Context-only indicators (Manheim MUVVI): charted for context but excluded from scoring.
Pre-Score Transforms
| Indicator | Transform |
|---|---|
| Nonfarm Payrolls (PAYEMS) | MoM change → 3-month rolling average |
| Real Hourly Earnings, DPI, Retail Sales, PCE | Year-over-year % change |
| PCE (spending momentum) | 3-month annualized rate of change |
| Net Worth / DPI | BOGZ1FL192090005Q ÷ DSPI (both quarterly) |
| CPI (all variants) | |YoY − 2.0%| distance → scored on lower distance |
| TSA Throughput | vs. 2019 baseline (pre-pandemic normalization) |
| All others | Raw level (already stationary or ratio) |
Smoothing
After scoring, each indicator's 0–100 series is smoothed with a rolling average before sub-score aggregation:
- Monthly indicators: 3-month centered rolling average
- Weekly indicators: 4-week rolling average
- Daily indicators: 30-day rolling average
- Quarterly indicators: no smoothing applied
Sub-Score Weights
| Sub-Score | Weight | Indicators |
|---|---|---|
| Labor & Income | 20% | UNRATE, PAYEMS, IC4WSA, CCSA, Real AHE YoY |
| Credit Stress | 20% | CC delinquency, Consumer loan delinquency, Charge-offs, NY Fed serious delinq transition, SLOOS tightening |
| Balance Sheet | 15% | Personal saving rate, Real DPI YoY, Debt service ratio, Net Worth/DPI |
| Spending & Demand | 15% | Real PCE 3-mo ann., Real retail sales YoY, TSA throughput vs 2019, Real PCE food svcs YoY |
| Sentiment | 10% | UMich Consumer Sentiment, OECD Consumer Confidence, NY Fed SCE missing payment prob. |
| Inflation | 10% | Headline CPI, Core CPI, Shelter CPI (all proximity to 2%), EIA gas prices |
| Big Ticket | 10% | 30yr mortgage rate, Auto loan rate (72mo), CC interest rate, Housing affordability index |
Within each sub-score, indicators are equally weighted. Sub-scores are renormalized if an indicator has no data.
Recession Back-Test
The scoring engine validates that the headline score drops ≥15 points by the NBER-designated recession peak (start of recession). Expected behavior:
| Recession | NBER Peak | Expected Score Drop |
|---|---|---|
| 1990–91 | Jul 1990 | ≥15 pts from pre-recession baseline |
| 2001 | Mar 2001 | ≥15 pts from pre-recession baseline |
| 2007–09 | Dec 2007 | ≥15 pts (score floors near 20 in 2009) |
| 2020 COVID | Feb 2020 | ≥15 pts (score craters by Apr 2020) |
Data Sources & Legal
- FRED: Federal Reserve Bank of St. Louis. Free API, attribution required.
- BLS: Bureau of Labor Statistics. Free API, public domain.
- BEA: Bureau of Economic Analysis. Free API, public domain.
- NY Fed HHDC: Household Debt and Credit. Free download, public data.
- NY Fed SCE: Survey of Consumer Expectations. Free download.
- EIA: U.S. Energy Information Administration. Free API, public domain.
- SEC EDGAR: 8-K Exhibit 99 earnings transcripts only. U.S. government system, public domain.
- Manheim MUVVI: Used for context only (not scored). Chart displays index level.
- Conference Board CCI: Redistribution restricted — not stored. Linked externally only.
The Consumer Compass is not investment advice. Scores are statistical computations, not editorial recommendations. Source code is MIT-licensed.