Acquire
The full official CFPB bulk archive plus Census state population estimates.
Reproducible by construction
What the system does, why each step exists, and where a responsible analyst should stop.
The full official CFPB bulk archive plus Census state population estimates.
Read the ZIP in chunks, parse dates, check every complaint ID, and hash the source.
Robust weekly baselines, TF-IDF classification, and non-negative matrix factorization topics.
Export a compact static snapshot; keep raw narratives, DuckDB, and model binaries local.
Signal logic
Each product-and-issue series is compared with its previous 26 complete weeks. The middle value is the expected count. Median absolute deviation measures how much that history normally moves.
score = (this week − expected) ÷ normal movementThe newest 15 days are excluded because newly submitted complaints may not be fully published yet.
Text model
Product context and complaint words become TF-IDF features. Three linear classifiers are tested; Logistic SGD currently performs best. NMF finds recurring word groups without generating new complaint text.
Responsible banking AI
No private bank data. Raw public narratives remain local and the site exposes only a scrubbed subset.
Geographic rates are contextual; they are not customer-risk or demographic-risk scores.
Signals prioritize reading. They do not accuse companies, infer violations, or automate adverse action.
Category drift, template language, class balance, and time-split performance need regular review.
Source ledger