Methodology
Every score on ComplaintRate is derived from public federal datasets using consistent, reproducible methods. This page explains exactly what we measure, how we measure it, and where each data layer has known limitations. ComplaintRate currently cross-references 12 independent federal data sources across 2,333 US financial institutions.
1. Data sources
All data is sourced from US federal government databases. No proprietary or commercial data sources are used.
The Consumer Financial Protection Bureau publishes every complaint it receives against financial institutions. The full database contains over 15M+ records since 2011, of which about 12 million are credit-reporting disputes. We filter to banking, credit card, mortgage, and lending complaints — nearly 3 million records — which reflect how financial institutions treat their customers directly.
The FDIC publishes balance sheet data for every FDIC-insured institution, updated quarterly. We use total deposits (DEP) as a proxy for institution size to estimate customer counts, and the failure history database to flag institutions with historical bank failures.
The Office of the Comptroller of the Currency publishes all formal enforcement actions against national banks and federal savings associations, including Cease-and-Desist orders, Civil Money Penalties, and Formal Agreements. We track active actions and action types; aggregate penalty totals are under review.
The Federal Reserve publishes enforcement orders against bank holding companies and state member banks. We track active orders and order types; aggregate penalty totals are under review.
The CFPB publishes its own enforcement actions, separate from the complaint database. These represent cases where the CFPB found sufficient evidence of consumer harm to take formal legal action.
The Financial Crimes Enforcement Network publishes civil money penalties for Bank Secrecy Act violations, including anti-money laundering failures. We track penalty amounts and violation types (e.g. AML failures, sanctions violations).
The Department of Justice Civil Rights Division publishes fair lending enforcement actions, including redlining cases and pricing discrimination settlements. We track total penalty amounts and primary violation types.
The Federal Financial Institutions Examination Council publishes Home Mortgage Disclosure Act data annually. We use 2023 HMDA data to calculate overall mortgage application denial rates per institution. Per-race denial rates and racial disparity ratios are not currently reported pending independent verification of per-race application data. Coverage is limited to institutions that reported sufficient mortgage applications to produce statistically meaningful rates.
The St Louis Federal Reserve publishes live benchmark interest rate data used to contextualise institution-level mortgage and lending rates.
2. Complaint rate formula
Raw complaint counts are misleading. JPMorgan Chase receives more complaints than Chime simply because it has tens of millions more customers. Comparing raw counts tells you nothing meaningful about how an institution treats its customers.
We normalise every institution's complaint count by its estimated customer base, producing a rate directly comparable across institutions of any size.
FDIC does not publish customer headcounts. We estimate them by dividing each institution's total deposits by $10,000 (assumed average deposit balance per customer). Applied consistently across all institutions — relative rankings remain valid even if absolute values carry estimation error.
Produces complaints per estimated 1,000 customer-equivalents. A rate of 1.0 means approximately 1 complaint per 1,000 estimated customers.
Institutions ranked highest to lowest (rank 1 = worst). Confidence tier is then assigned from three inputs — whether FDIC deposit data exists, total complaint volume (thresholds at 1,000 and 500), and whether the deposit figure is a reliable proxy for that institution's customer base. Full rule in section 8.
The $10,000 divisor in step 1 is a construction, not a measurement. No US institution publishes its retail customer headcount, so we build an estimate and apply it identically everywhere. It is a consistent yardstick, not a count of real people.
There is a second and more consequential gap, and it is worth stating plainly. The numerator counts people who complained. For a card issuer, those are largely cardholders. The denominator counts depositors. For an institution whose customers hold cards rather than deposit accounts, these are simply different populations — the people generating the complaints are not the people the denominator is counting. Deposits understate that institution's true customer base, and a denominator that is too small produces a rate that is too high.
So the direction of the bias is known: it inflates the reported complaint rate of card-led and lending-led institutions relative to traditional deposit-taking banks. The magnitude of that bias is not measured. We have not quantified it, and nothing on this site should be read as though we have.
This matters most exactly where it is least convenient. The institutions at the top of our league table — the highest rates on the site — are predominantly card issuers, which is the group this effect inflates. Their ordering relative to one another is unaffected, since the same construction applies to all of them. What it affects is the size of the gap between them and the deposit-taking banks further down.
Two things follow from that, and they are the whole of our response. We hold those institutions one confidence tier below what their complaint volume alone would earn, which is set out in section 8. And we publish this caveat rather than leaving a reader to find it.
Two secondary metrics are calculated directly from CFPB complaint records:
- Timely response rate — percentage of complaints where the institution responded within the CFPB-required timeframe.
- Closed with relief rate — percentage of complaints where the consumer received monetary or non-monetary relief.
3. Response Quality Score
The Response Quality Score (0–100, percentile-ranked) measures how substantively an institution responds to CFPB complaints. It is computed in two passes across all complaint records for each institution.
Monetary relief rate (35% weight), timeliness rate (25% weight), closure-without-explanation rate (8% weight). These are computed across all complaint records for the institution.
Template detection via MD5 hashing of response text (20% weight), resolution language rate — presence of resolution/remedy phrases vs deflection phrases (12% weight). Text analysis is applied to a sample of records where response narrative is available.
Scores are reported as percentile ranks. A score of 70+ (green) indicates high-quality, substantive responses. 40–69 (amber) indicates mixed quality. Below 40 (red) indicates predominantly boilerplate or dismissive responses.
Not all CFPB complaint records include response narratives — only those where the institution chose to provide them. Template detection and language analysis are algorithmic, not human-reviewed. The score reflects patterns across hundreds or thousands of responses and is a statistical signal, not a case-by-case assessment. Citibank N.A.'s 99.8% template rate (the highest in the dataset) reflects that virtually every sampled response was identical boilerplate text.
4. Consumer Narrative Analysis
ComplaintRate analyses the nearly 3 million consumer complaint narratives where the consumer consented to publication. These are firsthand written accounts of the consumer's experience, not institutional responses.
Each narrative is tokenised and filtered for stop words. The frequency of alarm-signal words (fraud, scam, illegal, threaten, harass, sue, attorney, never, impossible, refused, criminal, deceptive, and others) is calculated per institution and compared against the global baseline rate of 3.1% across all narratives. The institution-level alarm rate is percentile-ranked (0–100) to produce the Alarm Score.
Where narratives are available, the 10 most frequent non-stop words are surfaced as the Consumer Voice signal. These reveal what consumers most commonly write about when filing complaints against that institution.
Only nearly 3 million of the over 15M+ total complaint records include consumer narratives — consumers must opt in to publication. Narrative availability varies significantly by product type and complaint year. The alarm word list is curated by ComplaintRate and may not capture all relevant signals. Word frequency analysis does not account for context — a word like "never" may appear in positive or negative contexts. Institution names may appear in their own top word list if entity resolution does not fully strip name variants from tokenisation (known issue, being addressed).
5. HMDA fair lending data
Home Mortgage Disclosure Act (HMDA) data is published annually by the FFIEC and covers mortgage applications at US lending institutions. We use 2023 HMDA data — the most recent full-year release.
For each institution with sufficient mortgage application volume, we calculate:
- Overall denial rate — percentage of mortgage applications denied across all applicants.
Per-race denial rates and racial disparity ratios are not currently reported. See the caveat below.
HMDA data reflects mortgage applications only — not all financial products. ComplaintRate reports overall mortgage application denial rates from public federal data. Per-race denial rates and racial disparity ratios are not currently reported: per-race application counts could not be independently verified to ComplaintRate's required standard, so institution-level disparity figures are not published here. ComplaintRate presents the overall denial rate as a factual record of publicly reported outcomes, not as a legal conclusion of discrimination, redlining, or fair lending violation. HMDA coverage: 63 institutions in the current dataset.
6. Enforcement data
ComplaintRate tracks enforcement actions from seven federal agencies. All actions are sourced directly from official government publications. Enforcement data is distinct from complaint rates — an institution can have a low complaint rate and still have active enforcement actions, or vice versa.
Tracks active enforcement actions and action types by institution; coverage count and penalty totals under review. Covers national banks and federal savings associations.
Tracks active enforcement orders against bank holding companies and state member banks; coverage count under review.
Tracks CFPB-specific enforcement actions, separate from the complaint database.
Tracks Bank Secrecy Act civil money penalties. Coverage limited to institutions present in the CFPB dataset — FinCEN actions against non-CFPB institutions (e.g. Binance) are recorded but not shown on institution pages.
Tracks fair lending enforcement actions including redlining settlements and pricing discrimination cases. Coverage limited to institutions in the CFPB dataset with sufficient complaint volume.
Tracks Federal Trade Commission enforcement actions against non-bank financial companies, debt collectors, and fintechs. Scraped from FTC case database using requests + BeautifulSoup. Full historical scrape pending.
Tracks National Credit Union Administration administrative orders and enforcement actions against federally chartered credit unions.
Enforcement data is sourced from official government publications but is not guaranteed to be exhaustive. FinCEN and DOJ coverage is limited to institutions present in the CFPB database with sufficient complaint volume for inclusion in our scored dataset. Institutions with enforcement actions but no CFPB complaint history will not appear on ComplaintRate. Action dates, penalty amounts, and violation types are taken directly from official source documents — any errors in the source are reflected here.
7. Entity resolution
The CFPB database contains over 3,600 distinct company name strings, many referring to the same institution. "JPMorgan Chase Bank, N.A.", "Chase Bank", "JP Morgan Chase", and "Chase" all refer to the same entity but appear as separate records in the raw data.
We maintain a manually curated entity resolution table (44 entries as of April 2026) that maps raw CFPB name strings to canonical institution names. All complaints for mapped variants are aggregated under the canonical name before scoring. Enforcement data from OCC, Fed, FinCEN, and DOJ is matched to canonical names using a combination of exact matching, the entity map, and fuzzy string matching with a minimum confidence threshold of 0.80.
Institutions that cannot be confidently matched are recorded as unmatched and excluded from cross-referenced data layers rather than risk incorrect attribution.
8. Confidence tiers
Every institution is assigned a confidence tier describing how much weight its rate will carry. The tier is not a judgement about the institution — it describes how much we trust our own denominator and sample size for it.
Two things degrade a rate. Thin complaint volume makes it noisy: a single additional complaint can shift it materially. And a weak customer estimate makes it biased: the rate is only as good as the denominator underneath it. The tier rule accounts for both, so it takes three inputs rather than one.
Applied in order, so the tiering above can be reproduced from this page:
- Is there FDIC deposit data? If not, the institution is Directional regardless of how many complaints it has. Without deposits there is no denominator, so there is no rate we are willing to stand behind.
- How many complaints? 1,000 or more, 500 or more, or below 500. The Medium floor is 500 complaints.
- Is the deposit figure a reliable proxy for this institution's customers? Where it is not, the institution is held one tier below what its complaint volume alone would give it.
The third input is the one worth spelling out. Our customer estimate is built from deposits, so it works best for institutions whose customers are depositors. For institutions whose business is primarily lending rather than deposit-taking — card issuers whose customers hold cards rather than accounts, and custody or wealth banks whose deposit balances belong to a small number of large clients — deposits are a poor stand-in for the customer base. That is a property of the business model, not a criticism of the institution.
The visible effect is deliberate: an institution can carry tens of thousands of complaints and still sit at Medium rather than High, because the constraint is our confidence in its customer estimate, not its sample size. Where you see a very high rate paired with a Medium tier, that pairing is the disclosure — the rate is real, and the denominator underneath it is one we hold at arm's length. Section 2 sets out the direction of that effect in full.
Peer positioning uses a separate, stricter floor. Stating an institution's rate and ranking that rate against other institutions are different questions, and they carry different thresholds. Positioning against scored peers requires 5,000 complaints on record — independent of the confidence tier above. An institution can therefore be confidence-scored at High or Medium and still have its peer position shown as directional only; that is the expected result below 5,000 complaints, not a contradiction. The same directional-only treatment applies wherever a percentile rank is unavailable for an institution, for any reason. In both cases the published rate stands — it is the comparison against other institutions that we decline to state.
Only institutions with a High confidence tier appear in recommendations. Institutions with a complaints_per_1k rate above 0.5 are also excluded from recommendations regardless of confidence tier.
9. Known limitations
We believe in being explicit about what this data cannot tell you.
No US financial institution publicly discloses its exact retail customer headcount. The $10,000 average deposit assumption is reasonable for traditional retail banks but may overstate customer counts for wealth management institutions and understate them for fee-based fintechs with low average balances. Relative rankings between similar institution types are more reliable than absolute rate values.
The CFPB database only contains complaints that consumers chose to file. Filing frequency varies by demographic, product type, and awareness of the CFPB. Only approximately 5% of consumers with a genuine problem ever file a federal complaint — meaning the visible complaint data likely represents a fraction of actual consumer harm.
The CFPB's jurisdiction covers consumer financial products — checking accounts, credit cards, mortgages, personal loans, student loans, auto loans, money transfers, and debt collection. It does not cover investment products, insurance, or business banking.
HMDA data covers mortgage applications, not all financial products. ComplaintRate reports overall denial rates only; per-race denial rates and disparity ratios are not currently reported. See Section 5 for full caveats.
FinCEN and DOJ fair lending data is matched only against institutions present in the CFPB scored dataset. Large enforcement actions against institutions outside the CFPB dataset (e.g. cryptocurrency exchanges, non-bank entities) are not shown on institution pages. See Section 6 for full coverage counts.
The CFPB database reflects complaints since 2011. The political environment around the CFPB as of early 2026 creates uncertainty about future data availability. Our May 2026 snapshot represents the most complete normalised, entity-resolved version of this record that has ever been assembled. See our about page for more context.
10. Frequently asked questions
How does ComplaintRate calculate complaint rates?
ComplaintRate divides the total number of CFPB complaints filed against each institution by its estimated customer base (derived from FDIC deposit data), producing a rate per 1,000 estimated customers. This allows direct comparison between banks of any size.
Where does the complaint data come from?
All complaint data is sourced from the CFPB Consumer Complaint Database, a public record maintained by the US Consumer Financial Protection Bureau. We filter to banking, credit card, mortgage, and lending complaints — nearly 3 million records since 2011 — excluding credit reporting disputes.
How are customer counts estimated?
No US financial institution publicly discloses its exact retail customer headcount. ComplaintRate estimates customer counts by dividing each institution's total deposits (from FDIC BankFind) by $10,000, representing an assumed average deposit balance per customer.
What is the Response Quality Score?
The Response Quality Score (0–100) measures how substantively an institution responds to CFPB complaints. It is a composite of: monetary relief rate (35%), timeliness rate (25%), template response rate (20%), resolution language rate (12%), and other closure signals (8%). A score of 70+ indicates high-quality responses; below 40 indicates predominantly boilerplate or unhelpful responses.
What is the Narrative Alarm Score?
The Narrative Alarm Score (0–100) measures the frequency of alarm-signal words (fraud, scam, illegal, threaten, harass, sue, attorney, never, impossible, refused, etc.) in consumer narratives filed against an institution, compared to the global baseline rate of 3.1% across all analysed narratives. A score of 70+ suggests consumers are describing significantly more alarming experiences than average.
How does ComplaintRate handle HMDA per-race data?
ComplaintRate reports overall mortgage application denial rates per institution from 2023 FFIEC HMDA data. Per-race denial rates and racial disparity ratios are not currently reported: the underlying per-race application counts could not be independently verified to our required standard. We publish only the figures we can stand behind.
Are lower complaint rates always better?
Generally yes. Complaint rates measure consumer escalation to a federal regulator — a last resort. A lower rate means fewer customers felt compelled to file a formal federal complaint. It does not guarantee perfect service, but is a strong signal of relative consumer treatment.
How often is the data updated?
The CFPB complaint rate pipeline is updated regularly. Enforcement data (OCC, Fed, CFPB, FinCEN, DOJ) is updated when new verified actions are confirmed. HMDA data reflects the most recent FFIEC annual release (currently 2023). Narrative and response quality pipelines are rerun when the underlying CFPB data is refreshed.
11. Reproducibility
The scoring pipeline is written in Python using DuckDB for query processing and the Supabase API for storage. Separate pipeline scripts handle each data layer: CFPB complaint rates, OCC enforcement, Federal Reserve enforcement, CFPB enforcement, FDIC failures, FinCEN AML, DOJ fair lending, HMDA, response quality scoring, and narrative analysis.
The entity resolution mapping table is versioned and published on the data page. Researchers wishing to reproduce scores can apply the formulas above to the raw CFPB and FDIC datasets using the published entity map.