What Actually Works in a Consumer Complaint

88,673 credit-reporting complaints say specificity gets results and legal threats don’t. The formal letter format is the worst thing you can do.

consumer-finance
nlp
text-analysis
logistic-regression
r
Naming the accounts you’re disputing raises the relief rate from 56.6% to 70.4%. Threatening to sue lowers it. Writing ‘To Whom It May Concern’ lowers it more.
Author

Aaron Koenigsberg

Published

August 30, 2026

NoteA note on how this was made

Built by directing an AI research assistant: I set the question, chose the population and the comparisons, and decided what counted as evidence; Claude wrote and ran the R. The back-and-forth mattered — an early version of the templating figure counted the same complaint three times because it grouped duplicates across all three credit bureaus before filtering to one, which inflated the headline effect by about a quarter. That got caught, corrected, and is the reason the analysis below uses a single company.

The question

If you have an error on your credit report, you file a complaint. Roughly two thirds of people get some kind of relief; the other third get an explanation and nothing changes.

Search for advice on how to write one of these and you get a consistent answer: make it sound legal. Cite the Fair Credit Reporting Act. Reference your rights under section 611. Mention that you’re prepared to take legal action. Sign it like a formal letter.

Nobody seems to have checked whether any of that works.

The Consumer Financial Protection Bureau publishes every complaint it forwards to a company, including the consumer’s own text where they’ve consented, along with how the company resolved it. That’s a labelled dataset of complaints and outcomes, which means the advice is testable.

What I found

Specificity works. Legal threats don’t.

Among people writing their own complaint, naming the specific accounts in dispute raises the relief rate from 56.6% to 70.4%. Citing a specific statute raises it from 53.5% to 66.0%. Do both and you reach 75.1%, against 50.1% for doing neither.

Three things that sound authoritative make outcomes worse: threatening legal action, claiming damages, and writing in formal letter style. The formal letter format is the single most damaging feature I measured.

The data

I pulled every credit-reporting complaint filed between April and June 2025 where the consumer agreed to publish their text — 260,678 complaints — and kept only those filed against Equifax, leaving 88,673.

Restricting to one company isn’t fussiness. People routinely file the same complaint against all three national bureaus on the same day; 55% of distinct Equifax narratives also appear at TransUnion or Experian. Pooling them would count one grievance three times and treat those copies as independent evidence. Equifax is the largest single bureau at 34% of the volume, so it’s the natural choice. TransUnion and Experian are sitting on disk untouched, which makes them a clean replication test.

The outcome is the company’s own response code, and it’s binary in practice:

Company response n %
Closed with non-monetary relief 57,603 64.96
Closed with explanation 31,070 35.04

Nobody in this period got monetary relief, and nobody got an untimely response. So “relief” means the company recorded that it did something, versus recording that it explained itself.

Separating form letters from real complaints

The first problem is that a lot of these aren’t individual complaints at all. Credit-repair firms distribute form letters that get filed thousands of times, and if you don’t remove them you end up analysing a handful of templates rather than what people write.

Exact text matching doesn’t catch them, because the CFPB redacts account numbers before publishing and every copy of a form letter has different redactions. So I normalised first — stripped the redaction markers, dates, currency formatting and all non-letters, then lowercased. Two copies of the same form letter collapse to an identical string. Anything appearing more than once is a template.

Group n % of total Relief rate
Form letter 58,045 65.5 66.9%
Individually written 30,628 34.5 61.2%

That’s 4,624 distinct templates, the largest filed 3,380 times. Everything from here uses only the 30,628 individually written complaints. The form letters are out of the comparison entirely, so no result below can be an artefact of one template being filed thousands of times.

Worth noting the benchmark though: form letters do better than individual complaints, 66.9% against 61.2%. Hold that thought.

Measuring the advice

I turned the conventional advice into regular expressions — statute citations, attorney and lawsuit language, damages claims, formal salutations and sign-offs, demand phrasing.

Then I needed a measure of specificity, and the redaction turns out to be one. The CFPB replaces account numbers, creditor names and dates with XXXX. A complaint that lists six disputed tradelines is full of them; a complaint that says “my credit report is wrong” has almost none. Redaction density is a direct proxy for how many concrete things the complaint identifies.

It has a clean threshold:

Below 10% redacted, the relief rate sits in the high 40s to low 60s. Above it, high 60s to low 70s. I use more than 10% redacted as the definition of “specific” for the rest of the analysis.

The advice is mostly given by people who already follow it

Before testing whether the legal language works, it’s worth asking who uses it. I assumed the form letters would supply the legalese and individuals would write plainly. That’s backwards:

Feature Individually written Form letter
Cites a statute 61.7% 51.1%
Attorney / lawsuit language 14.4% 12.3%
Claims damages 6.7% 1.6%
Formal scaffolding 13.2% 4.5%
Names specific accounts 33.4% 13.2%
Estoppel / affidavit 4.5% 10.7%

Every legal feature except the estoppel language is more common in complaints people write themselves. The form letters here are short, blunt disputes; the long legalistic documents are individually composed. Convenient for the analysis — it means the legal features aren’t secretly measuring “is a form letter”.

Results

One feature at a time

Feature Present in Relief with Relief without Difference
Names specific accounts 33.4% 70.4% 56.6% +13.9 pp
Cites a statute 61.7% 66.0% 53.5% +12.5 pp
Demand language 25.0% 70.3% 58.2% +12.1 pp
Estoppel / affidavit 4.5% 68.2% 60.9% +7.4 pp
Claims damages 6.7% 62.5% 61.1% +1.4 pp
Attorney / lawsuit 14.4% 61.7% 61.1% +0.6 pp
Formal scaffolding 13.2% 60.8% 61.2% -0.4 pp

Specificity and citation stack

The obvious worry is that these are the same thing — people who cite statutes are the same people who list their accounts, and I’m measuring one effect twice. So I split it four ways:

Specificity helps by 11.4 points among complaints citing no statute, and by 14.2 points among those that do. It isn’t standing in for legal literacy — it works independently, and the two combined move the relief rate 25 points.

Everything at once

Single comparisons can mislead. Specific complaints are longer, and longer complaints might just do better. So I fit a logistic regression with all the features together, controlling for complaint length, sentence count and issue type.

Feature Odds ratio 95% CI p
Names specific accounts 1.65 [1.56, 1.74] < 1e-16
Demand language 1.34 [1.26, 1.43] < 1e-16
Length (log characters) 1.27 [1.22, 1.32] < 1e-16
Cites a statute 1.23 [1.16, 1.31] 1.6e-11
Estoppel / affidavit 1.14 [1.01, 1.28] 0.038
Claims damages 0.85 [0.76, 0.95] 0.004
Attorney / lawsuit language 0.84 [0.78, 0.91] 2.5e-05
Formal scaffolding (‘Sincerely’) 0.72 [0.67, 0.78] 2.7e-16

Specificity survives the controls and stays the strongest effect, so it isn’t just a side effect of writing more. Sentence count does nothing at all — I dropped it from the chart. How you structure the complaint doesn’t matter; what’s in it does.

The negative results are the interesting half. Threatening legal action, claiming damages and writing formally all reduce the odds of relief, and the formal letter format is the worst of the three.

Beating the form letters

Remember that form letters outperformed individual complaints overall. That gap disappears if you write a specific complaint:

Group n Relief
All individually written 30,628 61.2%
Form letters 58,045 66.9%
Individually written, specific, cites a statute 6,711 75.1%

Writing your own complaint isn’t the disadvantage. Writing a vague one is.

What to take from this

Do this. List the specific accounts, inquiries and dates you’re disputing, and cite the specific provision that applies. Together those move the relief rate from 50.1% to 75.1%.

Don’t do this. Don’t threaten to sue. Don’t claim damages. Don’t write it as a formal letter with a salutation and a sign-off. All three go the wrong way.

Why it probably works like this. A complaint naming specific tradelines can be acted on — there’s something concrete to look up, verify and delete. A complaint asserting your rights in general terms, however forcefully, leaves nothing to act on, so it gets an explanation. Legal threats and formal styling are signals aimed at a human reader; the process rewards being actionable instead.

Three things this doesn’t show. The outcome is Equifax’s own disposition code — “closed with non-monetary relief” means they recorded doing something, not that anyone confirmed your report got fixed. The analysis is associational, and people who can list their accounts precisely may differ in other ways I can’t see, like having kept better records. And it’s one company over one quarter, though the other two bureaus are downloaded and ready for a replication that would settle it quickly.

The single thing I’d do next is swap redaction density for a direct count of distinct accounts named, which would test whether the mechanism is really the number of concrete items rather than redaction in general.