Matched: bankaccountcheckcheckingchecking account
Explainable text model
Model lab
Try a lightweight local helper, then see how the real Python model performed on later complaints.
Local instant check
Closest issue queues
Matched: receivedreceive
Matched: bankaccount
Untouched later-time test
What the score means.
Within every issue, the oldest 70% selected features, the next 15% selected the model, and the newest 15% was tested once. Exact repeated text and one dated CFPB label rename were harmonized first. A product constraint then removes issue queues never seen for that product in development data.
Correct on about 72 of every 100 later test rows.
Every issue class counts equally.
The correct issue was in the shortlist.
Expected exact-accuracy range from this test.
Validation comparison
Six tested settings
These rows are validation results used to choose the model. The scorecard above is the separate final test.
Where it works
Results by issue
Some transaction and account issues are easier to separate. Debt and credit-reporting issues often use overlapping language.
Training facts
Logistic SGD
- Eligible unique rows
- 180,000
- Train + validation
- 153,000
- Final test rows
- 27,000
- Issue classes
- 12
Why it is not higher
- Several debt and credit-reporting issue labels use nearly the same language.
- The consumer-selected issue is a workflow label, not an adjudicated truth.
- Using sub-issue to inflate accuracy would leak a field that already depends on issue.
- Top-three performance is stronger, so the model remains a shortlist tool—not an automatic decision.