Skip to content
Contents
Decision AI

    Type to search. Planned chapters match by title only.

    Chapter 2.1

    Resolving and routing customer complaints

    A classifier trained on earlier complaints matches consumers' product choices about as often as Jev once it is fit to the actual mix, and it finds more of the complaints that end in money back, where it passes Jev with far fewer labels than the review task needs.

    Full report: every estimate with its interval, and every figure as a table.

    DraftFigures and numbers may change as the analysis is rebuilt.what is still being checked

    First draft, redesigned without human rating: routing is scored against the consumer's own product choice, and the money-back question against the company's recorded response.

    A bank's complaint desk gets a steady stream of written complaints, and each one needs to reach the right team. Send a mortgage complaint to the credit card team and it sits for days before someone sends it back. This chapter asks a decision engine to read each complaint and pick the product it is about, then asks the question every desk manager asks next: when should a person check the engine's pick before it goes out?

    The complaints are 10,00010,000 complaintsEstimandsample sizeWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database sampled from distinct narratives filed with the Consumer Financial Protection Bureau in 2025, standing for 519,841519,841 complaintsEstimand2025 complaints within the length limit that the sample stands forWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database narratives; repeated narratives were removed, which matters because many credit-reporting complaints use the same text. No one rated them by hand. Instead, each complaint carries two answers that already exist: the product the consumer selected when filing, and what the company eventually did about it.

    Jev and a classifier fit to the actual complaint mix match the consumer's product choice about equally often, 82%81.9% percent of complaintsEstimandtop product equals the consumer-selected productInterval95% CI 80.5% to 83.2%n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database and 82%82.4% percent of complaintsEstimandtop product equals the consumer-selected productInterval95% CI 81.2% to 83.7%n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database, and once both are recalibrated the cost comparison shows no clear winner at the assumed costs. So the choice between them rests on what a desk can run and check, and either one still needs people for uncertain complaints. Consumer choices are sometimes wrong, and the costs and review times are assumptions. The chapter follows the desk from automatic routing to human review, a limit on review time and how to spend it, then takes up one companion question: which complaints end in money back.

    The decision
    Owner and actions
    The complaint desk lead decides where each complaint goes; operations owns the cost of delay.
    Evidence at decision time
    The complaint narrative as the consumer wrote it, and nothing added later.
    Simplest alternative
    A word-counting classifier trained on complaints from earlier years.
    What establishes correctness
    The consumer's own product choice, which is sometimes wrong, and the company's recorded response.
    When the model is wrong or cannot decide
    A misrouted complaint waits days for the right team; a person reviewing every complaint costs staff time.
    Does the policy pay
    Expected cost per thousand complaints under stated costs for misroutes and triage.

    Picking the product

    Each engine saw the narrative and a list of eleven products with a short definition of each, and picked one. Jev and Luna also returned a probability for every product; the Haiku adapter returned only its pick. The chart compares how often the top pick matches what the consumer chose.

    Figure 1

    A classifier trained on earlier complaints agrees with consumers' product choices about as often as Jev

    Complaints whose predicted product matches the one the consumer selected, percent, by model, with 95% intervals

    • Decision engine
    • General language model
    • Trained classifier
    Show data
    Data for A classifier trained on earlier complaints agrees with consumers' product choices about as often as Jev
    agreeconf_highconf_lowkindmodeln
    81.9083.2080.50Decision engineJev 1.14.010,000
    84.2085.3082.90Decision engineOpenAI Luna10,000
    84.4085.5083.30General language modelClaude Haiku adapter10,000
    82.4083.7081.20Trained classifierTF-IDF + logistic10,000
    Each dot is one model, and the whisker is its 95% interval. Agreement is not the same as being right, because some consumers pick the wrong product. Counted equally across products, Jev leads the classifier (75.2% against 63.6%), because the classifier was fit to the actual mix.Note: Jev minus the classifier: −0.6 percentage points, from a bootstrap that resamples complaints within products.Source: CFPB Consumer Complaint Database, 2025 complaints with narratives of at most 3,000 characters; 10,000 sampled, weighted; engine calls October 2026

    Jev agrees on 82%81.9% percent of complaintsEstimandtop product equals the consumer-selected productInterval95% CI 80.5% to 83.2%n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database of complaints and the classifier on 82%82.4% percent of complaintsEstimandtop product equals the consumer-selected productInterval95% CI 81.2% to 83.7%n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database, a gap of −0.6 (95% CI −1.9 to 0.7)−0.6 percentage pointsEstimandjev minus tfidfInterval95% CI −1.9 to 0.7n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database points. How the classifier is trained decides this comparison. The training sample holds equal numbers of each product, and fitting it without weights drops the classifier to 78%78.2% percent of complaintsEstimandagreement for a classifier fit without weightsn10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database, while the weighted fit does poorly on rare products: counted equally across products, Jev scores 75%75.2% percent of complaints, each product counted equallyEstimandmean agreement across the eleven productsn10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database and the classifier 64%63.6% percent of complaints, each product counted equallyEstimandmean agreement across the eleven productsn10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database. Jev costs about $0.05$0.05 US dollars per 1,000 complaintsEstimandmean billed cost per call, list priceWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database per thousand complaints.

    Agreement is a soft score here. Consumers choose their own product from a form, and some choose badly: a complaint about a debt collector chasing a credit card balance can honestly belong to either team. The flows below show where Jev and the consumers part ways. The largest disagreements run between credit reporting and debt collection, two products that often appear in the same complaint.

    Routing flows

    Most complaints land in the product the consumer chose; the largest other flows run between credit reporting and debt collection

    Weighted flows from consumer-selected product to Jev's predicted product, 2025 complaints

    • Same category (solid)
    • Another category (hatched)
    Checking or savings to Checking or savings: 6.9% of all items, 734 unweightedChecking or savings to Credit card: 0.6% of all items, 59 unweightedChecking or savings to Credit reporting: 0.1% of all items, 9 unweightedChecking or savings to Debt collection: 0.0% of all items, 5 unweightedChecking or savings to Money transfer: 0.7% of all items, 80 unweightedChecking or savings to Mortgage: 0.0% of all items, 1 unweightedChecking or savings to Payday or personal loan: 0.1% of all items, 6 unweightedChecking or savings to Prepaid card: 0.1% of all items, 12 unweightedChecking or savings to Vehicle loan or lease: 0.0% of all items, 3 unweightedCredit card to Checking or savings: 0.2% of all items, 26 unweightedCredit card to Credit card: 5.9% of all items, 766 unweightedCredit card to Credit reporting: 0.5% of all items, 59 unweightedCredit card to Debt collection: 0.2% of all items, 22 unweightedCredit card to Debt or credit management: 0.0% of all items, 2 unweightedCredit card to Money transfer: 0.1% of all items, 13 unweightedCredit card to Mortgage: 0.0% of all items, 1 unweightedCredit card to Payday or personal loan: 0.1% of all items, 10 unweightedCredit card to Prepaid card: 0.1% of all items, 9 unweightedCredit reporting to Checking or savings: 0.4% of all items, 6 unweightedCredit reporting to Credit card: 1.7% of all items, 28 unweightedCredit reporting to Credit reporting: 46.6% of all items, 769 unweightedCredit reporting to Debt collection: 2.7% of all items, 44 unweightedCredit reporting to Debt or credit management: 0.1% of all items, 1 unweightedCredit reporting to Money transfer: 0.1% of all items, 2 unweightedCredit reporting to Mortgage: 0.4% of all items, 6 unweightedCredit reporting to Payday or personal loan: 0.5% of all items, 9 unweightedCredit reporting to Student loan: 1.4% of all items, 23 unweightedCredit reporting to Vehicle loan or lease: 1.3% of all items, 22 unweightedDebt collection to Checking or savings: 0.0% of all items, 2 unweightedDebt collection to Credit card: 0.7% of all items, 46 unweightedDebt collection to Credit reporting: 2.8% of all items, 187 unweightedDebt collection to Debt collection: 9.5% of all items, 639 unweightedDebt collection to Debt or credit management: 0.0% of all items, 3 unweightedDebt collection to Money transfer: 0.0% of all items, 2 unweightedDebt collection to Mortgage: 0.0% of all items, 3 unweightedDebt collection to Payday or personal loan: 0.2% of all items, 11 unweightedDebt collection to Student loan: 0.1% of all items, 4 unweightedDebt collection to Vehicle loan or lease: 0.2% of all items, 12 unweightedDebt or credit management to Checking or savings: 0.0% of all items, 33 unweightedDebt or credit management to Credit card: 0.0% of all items, 78 unweightedDebt or credit management to Credit reporting: 0.1% of all items, 190 unweightedDebt or credit management to Debt collection: 0.1% of all items, 191 unweightedDebt or credit management to Debt or credit management: 0.2% of all items, 300 unweightedDebt or credit management to Money transfer: 0.0% of all items, 20 unweightedDebt or credit management to Mortgage: 0.0% of all items, 26 unweightedDebt or credit management to Payday or personal loan: 0.0% of all items, 35 unweightedDebt or credit management to Prepaid card: 0.0% of all items, 5 unweightedDebt or credit management to Student loan: 0.0% of all items, 13 unweightedDebt or credit management to Vehicle loan or lease: 0.0% of all items, 18 unweightedMoney transfer to Checking or savings: 0.7% of all items, 90 unweightedMoney transfer to Credit card: 0.2% of all items, 25 unweightedMoney transfer to Credit reporting: 0.0% of all items, 2 unweightedMoney transfer to Debt collection: 0.0% of all items, 1 unweightedMoney transfer to Debt or credit management: 0.0% of all items, 1 unweightedMoney transfer to Money transfer: 6.0% of all items, 777 unweightedMoney transfer to Payday or personal loan: 0.0% of all items, 5 unweightedMoney transfer to Prepaid card: 0.0% of all items, 4 unweightedMoney transfer to Vehicle loan or lease: 0.0% of all items, 3 unweightedMortgage to Checking or savings: 0.0% of all items, 8 unweightedMortgage to Credit card: 0.0% of all items, 6 unweightedMortgage to Credit reporting: 0.0% of all items, 9 unweightedMortgage to Debt collection: 0.0% of all items, 13 unweightedMortgage to Debt or credit management: 0.0% of all items, 1 unweightedMortgage to Money transfer: 0.0% of all items, 2 unweightedMortgage to Mortgage: 2.2% of all items, 845 unweightedMortgage to Payday or personal loan: 0.1% of all items, 20 unweightedMortgage to Student loan: 0.0% of all items, 1 unweightedMortgage to Vehicle loan or lease: 0.0% of all items, 4 unweightedPayday or personal loan to Checking or savings: 0.0% of all items, 23 unweightedPayday or personal loan to Credit card: 0.1% of all items, 48 unweightedPayday or personal loan to Credit reporting: 0.1% of all items, 54 unweightedPayday or personal loan to Debt collection: 0.1% of all items, 88 unweightedPayday or personal loan to Debt or credit management: 0.0% of all items, 6 unweightedPayday or personal loan to Money transfer: 0.0% of all items, 6 unweightedPayday or personal loan to Mortgage: 0.0% of all items, 17 unweightedPayday or personal loan to Payday or personal loan: 1.0% of all items, 623 unweightedPayday or personal loan to Prepaid card: 0.0% of all items, 1 unweightedPayday or personal loan to Student loan: 0.0% of all items, 7 unweightedPayday or personal loan to Vehicle loan or lease: 0.1% of all items, 36 unweightedPrepaid card to Checking or savings: 0.1% of all items, 109 unweightedPrepaid card to Credit card: 0.1% of all items, 96 unweightedPrepaid card to Credit reporting: 0.0% of all items, 3 unweightedPrepaid card to Debt collection: 0.0% of all items, 6 unweightedPrepaid card to Money transfer: 0.1% of all items, 153 unweightedPrepaid card to Mortgage: 0.0% of all items, 2 unweightedPrepaid card to Payday or personal loan: 0.0% of all items, 7 unweightedPrepaid card to Prepaid card: 0.4% of all items, 533 unweightedStudent loan to Checking or savings: 0.0% of all items, 1 unweightedStudent loan to Credit card: 0.0% of all items, 8 unweightedStudent loan to Credit reporting: 0.1% of all items, 58 unweightedStudent loan to Debt collection: 0.1% of all items, 25 unweightedStudent loan to Money transfer: 0.0% of all items, 1 unweightedStudent loan to Mortgage: 0.0% of all items, 2 unweightedStudent loan to Payday or personal loan: 0.0% of all items, 22 unweightedStudent loan to Prepaid card: 0.0% of all items, 2 unweightedStudent loan to Student loan: 1.7% of all items, 790 unweightedVehicle loan or lease to Checking or savings: 0.0% of all items, 5 unweightedVehicle loan or lease to Credit card: 0.1% of all items, 24 unweightedVehicle loan or lease to Credit reporting: 0.2% of all items, 69 unweightedVehicle loan or lease to Debt collection: 0.1% of all items, 32 unweightedVehicle loan or lease to Debt or credit management: 0.0% of all items, 1 unweightedVehicle loan or lease to Money transfer: 0.0% of all items, 1 unweightedVehicle loan or lease to Mortgage: 0.0% of all items, 4 unweightedVehicle loan or lease to Payday or personal loan: 0.1% of all items, 31 unweightedVehicle loan or lease to Prepaid card: 0.0% of all items, 1 unweightedVehicle loan or lease to Student loan: 0.0% of all items, 2 unweightedVehicle loan or lease to Vehicle loan or lease: 1.7% of all items, 739 unweightedChecking or savings, 8.5%Credit card, 7.0%Credit reporting, 55.1%Debt collection, 13.5%Debt or credit management,0.5%Money transfer, 7.0%Mortgage, 2.3%Payday or personal loan, 1.4%Prepaid card, 0.7%Student loan, 1.9%Vehicle loan or lease, 2.0%Checking or savings, 8.3%Credit card, 9.3%Credit reporting, 50.4%Debt collection, 12.8%Debt or credit management,0.3%Money transfer, 7.1%Mortgage, 2.6%Payday or personal loan, 2.0%Prepaid card, 0.6%Student loan, 3.1%Vehicle loan or lease, 3.3%

    Select a category (click, or Tab to it and press Enter) to highlight its flows; Escape or a second press clears.

    81.9% of 9,998 items (weighted) are predicted in their recorded category by Jev 1.14.0. The largest flow to another category is Debt collection to Credit reporting, 2.8% of all items.

    Show data
    Data for Most complaints land in the product the consumer chose; the largest other flows run between credit reporting and debt collection
    Consumer-selected productJev's predicted productSame categoryShare of all items, weighted (%)Share of the consumer-selected product row, weighted (%)Items (unweighted)
    Checking or savingsChecking or savingsyes6.980.7734
    Checking or savingsCredit cardno0.66.559
    Checking or savingsCredit reportingno0.11.09
    Checking or savingsDebt collectionno0.00.65
    Checking or savingsMoney transferno0.78.880
    Checking or savingsMortgageno0.00.11
    Checking or savingsPayday or personal loanno0.10.76
    Checking or savingsPrepaid cardno0.11.312
    Checking or savingsVehicle loan or leaseno0.00.33
    Credit cardChecking or savingsno0.22.926
    Credit cardCredit cardyes5.984.4766
    Credit cardCredit reportingno0.56.559
    Credit cardDebt collectionno0.22.422
    Credit cardDebt or credit managementno0.00.22
    Credit cardMoney transferno0.11.413
    Credit cardMortgageno0.00.11
    Credit cardPayday or personal loanno0.11.110
    Credit cardPrepaid cardno0.11.09
    Credit reportingChecking or savingsno0.40.76
    Credit reportingCredit cardno1.73.128
    Credit reportingCredit reportingyes46.684.5769
    Credit reportingDebt collectionno2.74.844
    Credit reportingDebt or credit managementno0.10.11
    Credit reportingMoney transferno0.10.22
    Credit reportingMortgageno0.40.76
    Credit reportingPayday or personal loanno0.51.09
    Credit reportingStudent loanno1.42.523
    Credit reportingVehicle loan or leaseno1.32.422
    Debt collectionChecking or savingsno0.00.22
    Debt collectionCredit cardno0.75.146
    Debt collectionCredit reportingno2.820.6187
    Debt collectionDebt collectionyes9.570.3639
    Debt collectionDebt or credit managementno0.00.33
    Debt collectionMoney transferno0.00.22
    Debt collectionMortgageno0.00.33
    Debt collectionPayday or personal loanno0.21.211
    Debt collectionStudent loanno0.10.44
    Debt collectionVehicle loan or leaseno0.21.312
    Debt or credit managementChecking or savingsno0.03.633
    Debt or credit managementCredit cardno0.08.578
    Debt or credit managementCredit reportingno0.120.9190
    Debt or credit managementDebt collectionno0.121.1191
    Debt or credit managementDebt or credit managementyes0.233.0300
    Debt or credit managementMoney transferno0.02.120
    Debt or credit managementMortgageno0.02.826
    Debt or credit managementPayday or personal loanno0.03.835
    Debt or credit managementPrepaid cardno0.00.65
    Debt or credit managementStudent loanno0.01.513
    Debt or credit managementVehicle loan or leaseno0.01.918
    Money transferChecking or savingsno0.79.990
    Money transferCredit cardno0.22.825
    Money transferCredit reportingno0.00.22
    Money transferDebt collectionno0.00.11
    Money transferDebt or credit managementno0.00.11
    Money transferMoney transferyes6.085.6777
    Money transferPayday or personal loanno0.00.55
    Money transferPrepaid cardno0.00.44
    Money transferVehicle loan or leaseno0.00.33
    MortgageChecking or savingsno0.00.98
    MortgageCredit cardno0.00.66
    MortgageCredit reportingno0.01.09
    MortgageDebt collectionno0.01.413
    MortgageDebt or credit managementno0.00.11
    MortgageMoney transferno0.00.22
    MortgageMortgageyes2.293.0845
    MortgagePayday or personal loanno0.12.220
    MortgageStudent loanno0.00.11
    MortgageVehicle loan or leaseno0.00.44
    Payday or personal loanChecking or savingsno0.02.523
    Payday or personal loanCredit cardno0.15.348
    Payday or personal loanCredit reportingno0.15.954
    Payday or personal loanDebt collectionno0.19.788
    Payday or personal loanDebt or credit managementno0.00.66
    Payday or personal loanMoney transferno0.00.66
    Payday or personal loanMortgageno0.01.817
    Payday or personal loanPayday or personal loanyes1.068.6623
    Payday or personal loanPrepaid cardno0.00.11
    Payday or personal loanStudent loanno0.00.87
    Payday or personal loanVehicle loan or leaseno0.14.036
    Prepaid cardChecking or savingsno0.112.0109
    Prepaid cardCredit cardno0.110.696
    Prepaid cardCredit reportingno0.00.33
    Prepaid cardDebt collectionno0.00.76
    Prepaid cardMoney transferno0.116.8153
    Prepaid cardMortgageno0.00.32
    Prepaid cardPayday or personal loanno0.00.77
    Prepaid cardPrepaid cardyes0.458.6533
    Student loanChecking or savingsno0.00.11
    Student loanCredit cardno0.00.98
    Student loanCredit reportingno0.16.458
    Student loanDebt collectionno0.12.825
    Student loanMoney transferno0.00.11
    Student loanMortgageno0.00.22
    Student loanPayday or personal loanno0.02.422
    Student loanPrepaid cardno0.00.22
    Student loanStudent loanyes1.786.9790
    Vehicle loan or leaseChecking or savingsno0.00.55
    Vehicle loan or leaseCredit cardno0.12.624
    Vehicle loan or leaseCredit reportingno0.27.669
    Vehicle loan or leaseDebt collectionno0.13.532
    Vehicle loan or leaseDebt or credit managementno0.00.11
    Vehicle loan or leaseMoney transferno0.00.11
    Vehicle loan or leaseMortgageno0.00.44
    Vehicle loan or leasePayday or personal loanno0.13.431
    Vehicle loan or leasePrepaid cardno0.00.11
    Vehicle loan or leaseStudent loanno0.00.22
    Vehicle loan or leaseVehicle loan or leaseyes1.781.3739
    Follow the bands that change product. Some are engine errors and some are consumers who picked the wrong product; these data cannot tell which.Source: CFPB Consumer Complaint Database, 2025 complaints with narratives of at most 3,000 characters; 10,000 sampled, weighted

    When to ask a person first

    Suppose a misrouted complaint costs $30$30 US dollars per misrouted complaintEstimandassumed cost: three days of delay at $10Weightsnot applicable; assumed inputsPopulationthe complaint desk's routing decision (assumed inputs)Periodassumed inputs, October 2026SourceCFPB Consumer Complaint Database in delay and sending a complaint to a person for triage costs $6$6 US dollars per complaint sent to triageEstimandassumed cost: four minutes of a triage handlerWeightsnot applicable; assumed inputsPopulationthe complaint desk's routing decision (assumed inputs)Periodassumed inputs, October 2026SourceCFPB Consumer Complaint Database of staff time. Routing pays when the chance the pick is right is high enough that the expected misroute cost falls below the triage cost. At these costs the cutoff is 0.80.8 probability that the top product is rightEstimand1 minus triage cost over misroute costWeightsnot applicable; assumed inputsPopulationthe complaint desk's routing decision (assumed inputs)Periodassumed inputs, October 2026SourceCFPB Consumer Complaint Database: route when the model is more sure than that, and send everything else to a person.

    Triage band

    Automate, review or triage

    Loading data

    The next chart shows what each policy does with the whole stream of complaints.

    Figure 2

    At the same cutoff, Jev sends fewer complaints to people and misroutes more, because its stated probabilities run high

    Where each routing policy sends complaints, percent of complaints, 2025, weighted

    • Routed to the consumer's product
    • Routed to another product
    • Sent to a person for triage
    Show data
    Data for At the same cutoff, Jev sends fewer complaints to people and misroutes more, because its stated probabilities run high
    outcomepolicyshare
    Routed to the consumer's productJev, triage below the cutoff73.40
    Routed to another productJev, triage below the cutoff10.20
    Sent to a person for triageJev, triage below the cutoff16.40
    Routed to the consumer's productLuna, triage below the cutoff81.60
    Routed to another productLuna, triage below the cutoff12.60
    Sent to a person for triageLuna, triage below the cutoff5.90
    Routed to the consumer's productTF-IDF classifier, triage below the cutoff53.70
    Routed to another productTF-IDF classifier, triage below the cutoff3.80
    Sent to a person for triageTF-IDF classifier, triage below the cutoff42.50
    Routed to the consumer's productJev recalibrated, triage below the cutoff60.40
    Routed to another productJev recalibrated, triage below the cutoff4.60
    Sent to a person for triageJev recalibrated, triage below the cutoff35.10
    Routed to the consumer's productTF-IDF recalibrated, triage below the cutoff55
    Routed to another productTF-IDF recalibrated, triage below the cutoff4
    Sent to a person for triageTF-IDF recalibrated, triage below the cutoff41
    Routed to the consumer's productJev, route everything81.80
    Routed to another productJev, route everything18.10
    Sent to a person for triageJev, route everything0
    Routed to the consumer's productHaiku adapter, route everything (no probabilities)84.40
    Routed to another productHaiku adapter, route everything (no probabilities)15.60
    Sent to a person for triageHaiku adapter, route everything (no probabilities)0
    Routed to the consumer's productSend everything to triage0
    Routed to another productSend everything to triage0
    Sent to a person for triageSend everything to triage100
    Read each bar from left to right: complaints routed to the product the consumer chose, routed somewhere else, and sent to a person. Policies with a cutoff send their least certain complaints to a person.Source: CFPB Consumer Complaint Database, 2025 complaints with narratives of at most 3,000 characters; 10,000 sampled, weighted; engine calls October 2026

    With the cutoff taken at face value, Jev sends 16%16.4% percent of complaintsEstimandsent to triageWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database of complaints to a person and misroutes 10%10.2% percent of complaintsEstimandrouted to a product other than the consumer'sWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database, and the classifier sends 43%42.5% percent of complaintsEstimandsent to triageWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database and misroutes 4%3.8% percent of complaintsEstimandrouted to a product other than the consumer'sWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database. Priced at the assumed costs, that is $4,054$4,054 US dollars per 1,000 complaintsEstimandexpected misroute and triage costInterval95% CI $3,740 to $4,384n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs; measured error mix against the consumer's product. per thousand complaints for Jev and $3,685$3,685 US dollars per 1,000 complaintsEstimandexpected misroute and triage costInterval95% CI $3,482 to $3,893n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs; measured error mix against the consumer's product. for the classifier. Routing everything by Jev with no check costs $5,442$5,442 US dollars per 1,000 complaintsEstimandexpected misroute and triage costInterval95% CI $5,041 to $5,861n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs; measured error mix against the consumer's product., and sending everything to a person costs $6,000$6,000 US dollars per 1,000 complaintsEstimandexpected misroute and triage costInterval95% CI $6,000 to $6,000n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs; measured error mix against the consumer's product..

    The gap of +$368 (95% CI $97 to $655)+$368 US dollars per 1,000 complaintsEstimandjev_cut minus the classifier with a cutoffInterval95% CI $97 to $655n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database is about calibration more than about reading. Jev's stated probabilities run high, so it routes complaints it should send to a person. Recalibrate both models on other folds of the sample and Jev costs $3,471$3,471 US dollars per 1,000 complaintsEstimandexpected misroute and triage costInterval95% CI $3,243 to $3,709n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs; measured error mix against the consumer's product., sending 35%35.1% percent of complaintsEstimandsent to triageWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database to a person, against $3,666$3,666 US dollars per 1,000 complaintsEstimandexpected misroute and triage costInterval95% CI $3,466 to $3,885n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs; measured error mix against the consumer's product. for the classifier.

    Policy comparison

    With a cutoff, every model sends a share of complaints to people and misroutes fewer

    Expected cost per 1,000 complaints, misroute and triage shares by routing policy, with 95% intervals; 2025 complaints, weighted

    Policyderivedmeasuredmeasured
    Jev, triage below the cutoff (chapter policy)$4,054 ($3,740–$4,384)10.2% (9.2%–11.3%)16.4% (15.1%–17.8%)
    Luna, triage below the cutoff$4,127 ($3,797–$4,457)12.6% (11.5%–13.7%)5.9% (5.1%–6.7%)
    TF-IDF classifier, triage below the cutoff$3,685 ($3,482–$3,893)3.8% (3.1%–4.4%)42.5% (40.8%–44.2%)
    Jev recalibrated, triage below the cutoff$3,471 ($3,243–$3,709)4.6% (3.8%–5.3%)35.1% (33.4%–36.9%)
    TF-IDF recalibrated, triage below the cutoff$3,666 ($3,466–$3,885)4.0% (3.4%–4.7%)41.0% (39.4%–42.7%)
    Jev, route everything$5,442 ($5,041–$5,861)18.1% (16.8%–19.5%)0.0% (0.0%–0.0%)
    Haiku adapter, route everything (no probabilities)$4,683 ($4,354–$5,011)15.6% (14.5%–16.7%)0.0% (0.0%–0.0%)
    Send everything to triage$6,000 ($6,000–$6,000)0.0% (0.0%–0.0%)100.0% (100.0%–100.0%)

    n = 10,000 items. Intervals are paired bootstrap 95% intervals from the pipeline.

    Jev, triage below the cutoff: expected cost per 1,000 $4,054 (95% interval $3,740 to $4,384). Jev recalibrated, triage below the cutoff has the lowest point estimate on this measure, $3,471 (95% interval $3,243 to $3,709).

    Show data
    Data for With a cutoff, every model sends a share of complaints to people and misroutes fewer
    PolicyExpected cost per 1,000Lower 95%Upper 95%MisroutedLower 95%Upper 95%Sent to triageLower 95%Upper 95%
    Jev, triage below the cutoff40543740438410.29.211.316.415.117.8
    Luna, triage below the cutoff41273797445712.611.513.75.95.16.7
    TF-IDF classifier, triage below the cutoff3685348238933.83.14.442.540.844.2
    Jev recalibrated, triage below the cutoff3471324337094.63.85.335.133.436.9
    TF-IDF recalibrated, triage below the cutoff3666346638854.03.44.741.039.442.7
    Jev, route everything54425041586118.116.819.50.00.00.0
    Haiku adapter, route everything (no probabilities)46834354501115.614.516.70.00.00.0
    Send everything to triage6000600060000.00.00.0100.0100.0100.0
    Read across a row: what a policy costs and where its cost comes from. Costs are assumed; misroutes are counted against the consumer's own product choice.Source: CFPB Consumer Complaint Database, 2025 complaints; 10,000 sampled, weighted; engine calls October 2026

    That comparison gives both models plenty of labels. A desk starting out would have few, so the next chart gives both the same labeled complaints from earlier years.

    Figure 3

    For the same labels, recalibrating Jev costs less than fitting a classifier at every size tried

    Expected routing cost per thousand complaints against local labels used, weighted; whiskers run from the lowest to the highest draw

    • Classifier, fit and calibrated on these labels
    • Jev, recalibrated on these labels
    Show data
    Data for For the same labels, recalibrating Jev costs less than fitting a classifier at every size tried
    conf_highconf_lowcostlabelsmodeln_labels
    117204815628950 labelsClassifier, fit and calibrated on these labels50
    43953471389950 labelsJev, recalibrated on these labels50
    664344175303100 labelsClassifier, fit and calibrated on these labels100
    530835944128100 labelsJev, recalibrated on these labels100
    600047335125200 labelsClassifier, fit and calibrated on these labels200
    455634713868200 labelsJev, recalibrated on these labels200
    585144684792500 labelsClassifier, fit and calibrated on these labels500
    376935323613500 labelsJev, recalibrated on these labels500
    5187427245001,000 labelsClassifier, fit and calibrated on these labels1,000
    4054347135961,000 labelsJev, recalibrated on these labels1,000
    4497421543262,000 labelsClassifier, fit and calibrated on these labels2,000
    3839347135872,000 labelsJev, recalibrated on these labels2,000
    4208402641195,000 labelsClassifier, fit and calibrated on these labels5,000
    3594347135285,000 labelsJev, recalibrated on these labels5,000
    41453889399310,000 labelsClassifier, fit and calibrated on these labels10,000
    35943471354610,000 labelsJev, recalibrated on these labels10,000
    38373683374230,000 labelsClassifier, fit and calibrated on these labels30,000
    n/an/a354230,000 labelsJev, recalibrated on these labels30,000
    Further left is cheaper. Both arms use the same labeled complaints from earlier years, and the line marks raw Jev. Each count is every local label used, including the classifier's calibration labels; the complaints being scored are not among them. Whiskers are ranges across draws and not confidence intervals.Note: Platt scaling in place of isotonic calibration gives the same reading.Source: CFPB Consumer Complaint Database; labels from August 2023 to 2024; policy scored on 2025 complaints, weighted; engine calls October 2026; assumed costs

    With five hundred labels, recalibrated Jev costs $3,600$3,613 US dollars per thousand complaintsEstimandexpected misroute and triage cost at the cutoff, mean across label drawsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 characters; labels from August 2023 to 2024 complaintsPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs. Both arms use the same labeled draws. per thousand complaints, against $4,100$4,054 US dollars per thousand complaintsEstimandraw Jev, no local fittingWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 characters; labels from August 2023 to 2024 complaintsPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database for raw Jev and $4,800$4,792 US dollars per thousand complaintsEstimandexpected misroute and triage cost at the cutoff, mean across label drawsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 characters; labels from August 2023 to 2024 complaintsPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs. Both arms use the same labeled draws. for a classifier fit on those labels. With the full sample the classifier comes closer, at $3,700$3,742 US dollars per thousand complaintsEstimandexpected misroute and triage cost at the cutoff, mean across label drawsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 characters; labels from August 2023 to 2024 complaintsPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs. Both arms use the same labeled draws. against $3,500$3,542 US dollars per thousand complaintsEstimandexpected misroute and triage cost at the cutoff, mean across label drawsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 characters; labels from August 2023 to 2024 complaintsPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed costs. Both arms use the same labeled draws.. Labels from earlier years are what a desk would really have, and these figures leave out what each model costs to run.

    When reviewer time is fixed

    So far a person has been free to read as many complaints as the cutoff sends. Suppose the desk instead has 400400 reviewer minutes per 1,000 complaintsEstimandassumed review budgetWeightsnot applicable; assumed inputsPopulationthe complaint desk's routing decision (assumed inputs)Periodassumed inputs, October 2026SourceCFPB Consumer Complaint Database reviewer minutes for every thousand complaints, and everything outside the queue goes where Jev's pick sends it. Which complaints should a person read? The complaints and the costs stay as they were; what changes is that the desk can no longer send a person everything below the cutoff.

    Uncertainty is one reason to look at a complaint. Consequence is another, so the queue below also uses a second model. Its estimate of money back, from the companion section that follows, stands in for a misroute that matters more, under an assumed extra cost. It is a proxy and not a measured loss from a misroute. Read the columns separately, because review workload, misroutes, misrouted money-back complaints and assumed dollars can move in different directions.

    Policy comparison

    With reviewer time fixed, ranking by consequence and length changes which misroutes get caught

    Outcomes per 1,000 complaints with 400 reviewer minutes per 1,000 complaints spent on Jev's routing picks, with 95% intervals; 2025 complaints, weighted

    Policyderivedmeasuredmeasuredderived
    Review by expected loss per minute (chapter policy)20.2% (18.8%–21.6%)98.2 (87.0–109.5)1.06 (0.50–1.73)$3,074 ($2,732–$3,429)
    No review0.0% (0.0%–0.0%)181.5 (168.2–195.6)3.18 (2.26–4.20)$5,827 ($5,402–$6,277)
    Review the least certain picks14.3% (13.1%–15.6%)110.4 (99.4–121.6)1.57 (0.89–2.31)$3,499 ($3,144–$3,852)
    Review by expected loss14.1% (13.0%–15.3%)114.7 (103.6–126.1)1.14 (0.54–1.88)$3,579 ($3,229–$3,944)

    n = 10,000 items. Intervals are paired bootstrap 95% intervals from the pipeline.

    Review by expected loss per minute: complaints reviewed 20.2% (95% interval 18.8% to 21.6%). It has the highest point estimate on this measure.

    Show data
    Data for With reviewer time fixed, ranking by consequence and length changes which misroutes get caught
    PolicyComplaints reviewedLower 95%Upper 95%Misroutes leftLower 95%Upper 95%Misrouted money-back complaints leftLower 95%Upper 95%Expected costLower 95%Upper 95%
    Review by expected loss per minute20.218.821.698.287.0109.51.060.501.73307427323429
    No review0.00.00.0181.5168.2195.63.182.264.20582754026277
    Review the least certain picks14.313.115.6110.499.4121.61.570.892.31349931443852
    Review by expected loss14.113.015.3114.7103.6126.11.140.541.88357932293944
    Read down each column. Every queue spends the same reviewer minutes, and complaints outside it go where Jev's pick sends them. Review time, reviewer accuracy and costs are assumed; misroutes are counted against the consumer's product.Source: CFPB Consumer Complaint Database, 2025 distinct narratives; 10,000 sampled, weighted; engine calls October 2026; assumed review time and costs

    Reviewing the least certain picks is the natural rule, and it leaves 110.4110.4 misroutes left per 1,000 complaintsEstimandreview queue of 400 reviewer minutes per 1,000 complaintsInterval95% CI 99.4 to 121.6n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed review time, reviewer accuracy and costs; measured misroutes against the consumer's product. misroutes per thousand complaints, down from 181.5181.5 misroutes left per 1,000 complaintsEstimandreview queue of 400 reviewer minutes per 1,000 complaintsInterval95% CI 168.2 to 195.6n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed review time, reviewer accuracy and costs; measured misroutes against the consumer's product. with no review. Adding the consequence moves attention toward complaints that may involve money, leaving 1.141.14 misrouted money-back complaints left per 1,000 complaintsEstimandreview queue of 400 reviewer minutes per 1,000 complaintsInterval95% CI 0.54 to 1.88n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed review time, reviewer accuracy and costs; measured misroutes against the consumer's product. misrouted money-back complaints against 1.571.57 misrouted money-back complaints left per 1,000 complaintsEstimandreview queue of 400 reviewer minutes per 1,000 complaintsInterval95% CI 0.89 to 2.31n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed review time, reviewer accuracy and costs; measured misroutes against the consumer's product., a difference of −0.43 (95% CI −0.91 to 0.09)−0.43 per 1,000 complaintsEstimandvalue minus reviewing the least certain, left_moneyInterval95% CI −0.91 to 0.09n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database, whose range includes zero. Adding review time changes more: because short complaints take less time, the same minutes cover 20%20.2% percent of complaints reviewedEstimandreview queue of 400 reviewer minutes per 1,000 complaintsInterval95% CI 18.8% to 21.6%n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed review time, reviewer accuracy and costs; measured misroutes against the consumer's product. of complaints instead of 14%14.3% percent of complaints reviewedEstimandreview queue of 400 reviewer minutes per 1,000 complaintsInterval95% CI 13.1% to 15.6%n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint DatabaseNoteAssumed review time, reviewer accuracy and costs; measured misroutes against the consumer's product., and the expected cost changes by −425 (95% CI −639 to −198)−425 per 1,000 complaintsEstimandvalue_per_minute minus reviewing the least certain, costInterval95% CI −639 to −198n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database dollars per thousand. That gain rests on the assumed link between length and review time, and on a short complaint being reviewed as accurately as a long one. A desk would need to measure both before running this queue.

    A companion question: which complaints end in money back

    This is a different job from routing: it predicts what a company will do later, not what a complaint is about. A desk might fast-track complaints that are likely to end with the company paying the consumer back. Only 3%2.6% percent of complaintsEstimandcompany response is closed with monetary reliefWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database of these complaints closed with monetary relief, so finding them early matters. Each engine was asked whether the consumer describes money the company could return, and the classifier was trained directly on which earlier complaints ended in relief.

    Figure 4

    A classifier trained on past outcomes finds money-back complaints better than the models that only read the complaint

    Share of complaints closed with monetary relief that fall in each model's top tenth by P(money back), percent

    • Decision engine
    • General language model
    • Trained classifier
    Show data
    Data for A classifier trained on past outcomes finds money-back complaints better than the models that only read the complaint
    caughtkindmodel
    58.20Decision engineJev 1.14.0
    63.10Decision engineOpenAI Luna
    51.80General language modelClaude Haiku adapter
    73.10Trained classifierTF-IDF + logistic
    Each stem shows how many money-back complaints a desk would catch if it fast-tracked the tenth of complaints the model ranks highest. Picking a tenth at random would catch about a tenth of them.Note: Ranked over all complaints, the classifier's AUC is 0.936 and Jev's is 0.895; Jev minus the classifier is −0.041.Source: CFPB Consumer Complaint Database, 2025 complaints with narratives of at most 3,000 characters; 10,000 sampled, weighted; engine calls October 2026

    Fast-tracking the tenth of complaints the classifier ranks highest would catch 73%73.1% percent of complaints closed with monetary reliefEstimandshare caught by fast-tracking the tenth of complaints with the highest P(money back)Interval95% CI 68.4% to 77.9%Weightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database of the money-back cases, against 58%58.2% percent of complaints closed with monetary reliefEstimandshare caught by fast-tracking the tenth of complaints with the highest P(money back)Interval95% CI 53.0% to 63.4%Weightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database for Jev, a gap of +14.9 (95% CI 8.9 to 20.4)+14.9 percentage pointsEstimandclassifier minus JevInterval95% CI 8.9 to 20.4n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database points. Much of any model's score here comes from knowing the product, because money back is far more common for some products than others: ranking complaints by their product's past rate alone gives an AUC of 0.9060.906 area under the ROC curveEstimandranking complaints by their product's relief rate in the training yearsn10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database, above Jev's 0.8950.895 area under the ROC curveEstimandP(money back) against closed with monetary reliefInterval95% CI 0.881 to 0.908n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database. Within a product, the classifier's lead narrows to 0.7690.769 area under the ROC curveEstimandmean across products of the AUC within each product that has both outcomesInterval95% CI 0.736 to 0.802n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database against 0.7420.742 area under the ROC curveEstimandmean across products of the AUC within each product that has both outcomesInterval95% CI 0.709 to 0.770n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database, a difference of +0.027 (95% CI −0.009 to 0.065)+0.027 difference in AUCEstimandclassifier minus Jev, within productInterval95% CI −0.009 to 0.065n10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database. The engine answers the question it was asked, whether the consumer describes a refundable loss. The classifier learned from history which complaints companies actually paid. One reading is that history carries information a single complaint does not, though this comparison cannot separate that from the difference in the question asked, the number of labels or calibration.

    Could a better prompt close the gap? On a random subset of complaints, the engines were asked a sharper question, whether the company will likely give money back, in three ways: on its own, with ten earlier complaints labeled paid or not paid, and with a short description of what tended to get paid in earlier years.

    Figure 5

    Describing past outcomes in the question helps the engines a little, and examples do not close the gap to the classifier

    AUC for complaints closed with monetary relief, by model and how the question was posed, with 95% intervals; 2,000 sampled 2025 complaints

    • Classifier trained on past outcomes
    • Jev
    • Luna
    Show data
    Data for Describing past outcomes in the question helps the engines a little, and examples do not close the gap to the classifier
    aucconf_highconf_lowgrouplabeln
    0.9470.9590.932Classifier trained on past outcomesClassifier2,000
    0.8810.9120.847JevJev: original question2,000
    0.8990.9220.873JevJev: reworded to predict payment2,000
    0.9030.9260.878JevJev: reworded + ten labeled examples2,000
    0.9130.9310.891JevJev: reworded + outcome criteria2,000
    0.8870.9200.845LunaLuna: original question2,000
    0.9030.9290.875LunaLuna: reworded to predict payment2,000
    0.8890.9110.866LunaLuna: reworded + ten labeled examples2,000
    0.9150.9340.891LunaLuna: reworded + outcome criteria2,000
    Each dot is one model with one version of the question. Moving right means the model ranks money-back complaints above the rest more often. The classifier learned from earlier outcomes; the engines saw only the question, plus ten labeled examples or a short description of what tended to get paid.Note: Only about one complaint in forty ended in money back, so the intervals are wide.Source: CFPB Consumer Complaint Database, 2025 complaints; 2,000 drawn at random from the sample, weighted; engine calls October 2026

    The sharper question and the description together help a little, and rewording alone accounts for much of that. The labeled examples add little. None of the versions brings the engines level with the classifier. How much history does the classifier need? Refit on smaller samples of past complaints, it matches Jev at about a thousand.

    Figure 6

    For money back, the classifier matches Jev with about a thousand past complaints

    Money-back complaints caught in the top tenth, percent, against past complaints used to train the classifier, weighted

    Show data
    Data for For money back, the classifier matches Jev with about a thousand past complaints
    caughtconf_highconf_lowlabels
    3451.9011.20100 complaints
    49.3059.5030.50300 complaints
    58.8065.3053.101,000 complaints
    66.4069.1063.603,000 complaints
    69.9072.9066.6010,000 complaints
    74.9075.9074.2030,000 complaints
    Read down the rows: each dot is the mean of refits on that many past complaints, and its whisker runs from the lowest to the highest refit, which is not a confidence interval. Each count includes the fifth held out for calibration. The vertical line is Jev, which uses none of them.Source: CFPB Consumer Complaint Database, 2025 distinct narratives with narratives of at most 3,000 characters; 10,000 sampled, weighted; engine calls October 2026; ten refits per size, three at the largest

    The classifier catches 49%49.3% percent of complaints closed with monetary reliefEstimandmean top-tenth capture over refits on 300 labeled complaintsn10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database with three hundred past complaints, 59%58.8% percent of complaints closed with monetary reliefEstimandmean top-tenth capture over refits on 1,000 labeled complaintsn10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database with a thousand and 66%66.4% percent of complaints closed with monetary reliefEstimandmean top-tenth capture over refits on 3,000 labeled complaintsn10,000 complaintsWeightsweighted to the product mix of those complaints (sample_weight)Population10,000 sampled 2025 CFPB complaints with a narrative of at most 3,000 charactersPeriodcomplaints received in 2025; engines called October 2026SourceCFPB Consumer Complaint Database with three thousand. That is far fewer labels than the review task needed, and a desk already has these records, because its own case system stores how each complaint closed.

    These counts include calibration labels held out from each sample, and the complaints being scored are not used. They describe this classifier on these records, so treat them as a guide for a pilot. Whether a desk should build this model also depends on whether outcomes arrive in time, whether old records resemble today's complaints, and whether money back is what the desk wants to prioritize.

    What these data cannot show

    The routing score compares the engine with the consumer's own product choice, so some of what looks like engine error is consumer error, and these data cannot say how much. The money-back label is what the company did, which depends on the company as much as the complaint. The costs are assumptions, so the comparisons show how policies trade off under them and are not measured savings. The sample describes distinct narratives, not every filing, and money back is more common among them than among all filed complaints. The complaints are limited to narratives of at most 3,0003,000 charactersEstimandlength cap of the stored narrativesWeightsnot applicablePopulationCFPB narratives in the July 2026 copyPeriod2025SourceCFPB Consumer Complaint Database characters, which leaves out 8%7.7% percent of deduplicated 2025 complaints with a narrativeEstimandnarratives over 3,000 characters, excludedWeightsfull countPopulationdeduplicated 2025 CFPB complaints with a narrativePeriod2025SourceCFPB Consumer Complaint Database of 2025 complaints with a narrative, because the public narratives were withdrawn in August 2026 and only a cut copy remains.


    Data sources

    • CFPB Consumer Complaint Database10,000 complaints received in 2025 with a narrative of at most 3,000 characters, stratified by product; complaints from August 2023 to 2024 for the classifierWeights: sample_weight restores the product mix of the 2025 complaints within the length limit · License: Public domain; the booklet shows aggregates only

    All data sources

    Methods

    Two decision engines and a general language model read each sampled complaint narrative and answered two typed questions: which product it is about, and whether the consumer describes money the company could return. A classifier trained on earlier complaints answered the same two. Nothing was rated by hand.

    Which complaints

    CFPB withdrew complaint narratives from public access in August 2026, so the only copy available keeps the first 3,000 characters of each narrative. The sample keeps only complaints whose whole narrative fits, which excludes 7.7% of 2025 complaints with a narrative. Every result describes complaints within that length.

    The sample holds the same number of complaints for each of the eleven products, and weights restore each product's share of 2025 complaints.

    Labels

    Routing is scored against the product the consumer selected when filing. Consumers sometimes pick the wrong product, so a disagreement can be the consumer's mistake rather than the engine's.

    The money-back question is scored against the company's recorded response, closed with monetary relief. That outcome depends on the company as well as the complaint.

    Intervals

    Intervals are 95% bootstrap intervals that resample complaints within product strata, keep each product's share fixed and use the same resamples for every policy. They describe sampling error for 2025 complaints and say nothing about other years or other companies.

    How to cite

    @misc{singh2026resolvingandroutingcustomercomplaints,
      author = {Singh, Vishal},
      title = {Resolving and routing customer complaints},
      year = {2026},
      url = {https://vishalsingh.org/decisionai/resolving-and-routing-customer-complaints},
      note = {In Decision AI. Published 29 October 2026.}
    }