Skip to content
PulseCredit

Methodology & Data

PulseCredit is built to be auditable: every number traces back to keyless, public-domain U.S. government data through a single reproducible pipeline. This page documents the sources, the three methods, their limits, and how to regenerate everything.

Data sources

SourceRoleAccess
FRED (Federal Reserve Bank of St. Louis)DRCCLACBSDelinquency rate on credit card loans, all commercial banks (%)forecast target/scenario targetkeyless (fredgraph CSV endpoint)
FRED (Federal Reserve Bank of St. Louis)DRCLACBSDelinquency rate on consumer loans, all commercial banks (%)contextkeyless (fredgraph CSV endpoint)
FRED (Federal Reserve Bank of St. Louis)CORCCACBSCharge-off rate on credit card loans, all commercial banks (%)contextkeyless (fredgraph CSV endpoint)
FRED (Federal Reserve Bank of St. Louis)UNRATECivilian unemployment rate (%)scenario driverkeyless (fredgraph CSV endpoint)
FRED (Federal Reserve Bank of St. Louis)TDSPHousehold debt service payments as % of disposable income (%)scenario driverkeyless (fredgraph CSV endpoint)
CFPB Consumer Complaint Database (trends API)consumer_complaintsMonthly consumer complaint volume, total and by product.anomaly layerkeyless (trends aggregation endpoint)

All sources are U.S. Government public-domain data (FRED Terms of Use; CFPB open data) and require no API key.

Method 1 — Delinquency forecasting

The forecast target is FRED DRCCLACBS (credit-card delinquency rate, all commercial banks), a quarterly series back to 1991. We fit a SARIMAX(1, 1, 1) model and project four quarters ahead, publishing the central path with an 80% confidence band.

The model is backtested honestly on an 8-quarter rolling holdout against a naive last-value baseline. It currently does not beat naive: model MAPE 8.34% / RMSE 0.287 versus naive MAPE 4.51% / RMSE 0.155. We report this scorecard on the overview rather than hiding it — for a slow, persistent series, beating persistence is genuinely hard, and pretending otherwise would be dishonest.

Method 2 — Scenario regression

To stress-test delinquency against the macro cycle we fit an OLS regression DRCCLACBS ~ const + UNRATE + TDSP on 85 quarterly-aligned observations (R² = 0.756). The fitted coefficients are const −3.976, UNRATE +0.140 (percentage points of delinquency per point of unemployment), and TDSP +0.509. Scenarios step unemployment by +0/+1/+2/+3pp from its base of 4.33% while holding household debt-service (TDSP) fixed, yielding the marginal deltas shown on the overview.

Method 3 — Complaint anomaly detection

Monthly consumer-complaint volumes from the CFPB trends API are scanned per product line for spikes. Each month's value is compared to a trailing rolling mean and standard deviation; the resulting z-score ranks how unusual the surge is. Months exceeding the threshold are flagged, and the largest are surfaced as the top-anomalies table. This is an early-warning layer — a spike signals attention, not causation.

Limitations (read before acting)

  • Forecast does not beat naive. Over the holdout the SARIMAX model trails a last-value baseline; treat the point forecast as indicative and lean on the band.
  • Correlation, not causation. The scenario regression is descriptive. A +2pp unemployment shock mapping to a delinquency change assumes the historical relationship holds and other drivers stay fixed.
  • Complaint volume is behavioral. CFPB counts reflect complaint propensity, media cycles, and category reclassifications — not only underlying stress. Product taxonomies changed over the window.
  • National, quarterly granularity. These are national aggregates; regional and higher-frequency breakdowns are future work, not shown here as results.

Reproducibility

The pipeline is one command — npm run data (python3 scripts/build_index.py) — which pulls FRED and CFPB, fits the forecast, regression, and anomaly scores, and writes validated JSON artifacts. A separate check, npm run validate, asserts the outputs are well-formed and face-valid. No manual steps, no hand-edited numbers.