Methodology
The site is rebuilt every day from the CFPB's bulk export. This build holds 18,091,520 complaints received from 1 Dec 2011 to 30 Sep 2026.
1. What is counted
One row in the CFPB file is one complaint that the Bureau sent to a company for response. Each is counted once under its company, product, sub-product, issue, sub-issue, state and month of receipt. Only coded fields are read. The free-text narrative that some consumers choose to publish is never read, stored or displayed.
Time windows (30, 90 and 365 days) end on the latest “date received” in the file, not on today's date. Because the Bureau publishes a complaint only after the company responds or 15 days pass, the most recent two to three weeks are always incomplete; charts hatch the current month to show this.
2. Companies
Company names appear exactly as the CFPB publishes them. The Bureau usually files complaints under a parent company, so a bank and its card-issuing subsidiary may share one entry, and a company that was renamed may appear under two. The site does not merge or rename entries.
- A company gets a page once it has at least 100 complaints on file. Pages for companies with fewer than 20 complaints in the last 12 months are kept for the record but marked so that search engines do not index them.
- Of the 8,136 names in the file, 1,361 are listed. The 6,310 names below the threshold account for 93,808 complaints.
- No individuals. Before anything is stored, each name is tested for whether it reads as a natural person: a first and last name, “LAST, FIRST”, a law office or practice under one lawyer's name, or a person trading under a business name. 465 names (23,558 complaints) were set aside this way. The test is deliberately strict, so some small firms named after a founder are also left out. Their complaints remain in every total, shown as “companies not listed by name”.
3. Size measures
The CFPB asks that complaint volume be read in the context of company size. The site looks for each listed company in three public files, by exact match on the normalised name, and uses the first that applies:
- FDIC-insured banks (91 companies). Total assets of the bank, or of all insured banks under the same holding company when the CFPB entry is the holding company. Rate: complaints in 12 months per $1 billion in assets.
- Federally insured credit unions (19 companies). Total assets from the NCUA call report. Same rate.
- Mortgage lenders (40 companies), only where mortgage is at least half of the company's complaints and it is not a bank or credit union. Mortgage complaints in 12 months per 1,000 loan and application records the lender filed under HMDA. HMDA measures lending, not servicing.
The CFPB publishes complaints about depository institutions only above $10 billion in assets; complaints about smaller banks and credit unions are referred to other regulators and do not appear in the database. Matched institutions below that size therefore show their assets but no per-size rate. HMDA is not used for companies whose name marks them as a servicer, or whose mortgage complaints exceed a tenth of their HMDA records, because HMDA counts a lender's new applications and loans and says nothing about the loans a servicer handles for others. When a name matches more than one unrelated institution, no match is made. A handful of large holding companies whose banks trade under a different name are matched by a hand-checked list of FDIC certificate numbers. Every company page names the institution its size figure came from. The 1,211 companies that could not be matched by name to a single institution in the FDIC, NCUA or HMDA files (credit bureaus, debt collectors, payment apps, non-bank lenders and servicers among them) are shown as “no public size measure” on their page and in every table; that is a statement about the available data, not about the company.
Bank assets measure the whole institution. A bank that specialises in credit cards will show more card complaints per dollar of assets than a diversified bank with the same service quality, so per-size figures are best read among similar companies.
4. Peer comparison
Each company's peers are the listed companies whose largest complaint category is the same CFPB product and that received 20 or more complaints in the last 12 months. The page shows the peer median for complaint count, year-on-year change, timely responses and the share of closed complaints that ended with monetary or non-monetary relief. A per-size median is taken only over peers that share the company's kind of size measure. Medians are shown only for groups of five or more; tables of per-size figures are ordered by count, never by the rate.
5. Responses
“Closed with relief” on this site means the company selected “Closed with monetary relief” or “Closed with non-monetary relief” (or the pre-2012 “Closed with relief”). The share is taken over closed complaints, leaving out those still “In progress”. “Timely” is the CFPB's own yes/no field. The consumer-disputed field, which the CFPB stopped collecting in April 2017, is not in the current export and is not shown.
6. Products and issues
Product, sub-product, issue and sub-issue labels are the CFPB's, verbatim, including labels it has retired and labels that name a kind of alleged wrongdoing (for example the issue “Fraud or scam”). A label records the category the consumer selected on the CFPB form; it is not a finding about the company, and this site's own sentences never characterise a company in those terms. Issues with fewer than 100 complaints have no page.
7. States and months
State is the consumer's reported state of residence. Per-capita rates use Census Bureau 2025 estimates. Pages exist for the 50 states and the District of Columbia; ZIP codes are never used. A state and product page needs 50 complaints in 12 months, and a state month page 30 in the month.
8. Wording
Pages state counts, shares, rates and the CFPB's categories. They do not characterise a company's conduct, and tables ordered by count always carry the size column and the CFPB's caution. Sentences are assembled from fixed templates by the build; nothing is written by a language model.