How we count
The sources, definitions, thresholds and limits behind every finding OnClarity Labs publishes.
What Labs is
OnClarity Labs publishes one finding at a time from public complaint data: one number, one chart and one rule to try this week. Each finding shows its source, sample and period beside the number and links here. Findings are free and never gated. We use public data only, never customer data from our own platform, and we never name a company or a person.
Sources, licences, dates
CFPB Consumer Complaint Database (US). Structured records only, read through the public API on 25 Sep 2026. Complaints received 2 Sep 2024 to 30 Aug 2026: 104 complete weeks. Licence: CC0. The CFPB announced new closure-category guidance and intake checks on 24 Jun 2026 and stopped publishing complaint narratives on 14 Aug 2026. We use no narratives and flag any category change that touches a finding.
Financial Ombudsman Service (UK). Annual complaints data 2025/26, published 21 May 2026: new cases and uphold rates by product. Licence: Open Government Licence v3.0.
Ofcom (UK). Telecoms and pay-TV complaints per 100,000 customers, Q1 2026 edition. Context only.
The data manifest lists every file with its date, period, rows, licence and checksum.
Definitions
Sector: a CFPB product, such as credit cards.
Theme: product, issue and sub-issue. Themes that never reach 10 complaints in a week are pooled into one “other” theme per sector.
Week: Monday to Sunday, by the date the CFPB received the complaint.
Top five: a sector’s five largest themes that week, each with 20 or more complaints.
Known issue: a theme that was in its sector’s top five in at least 4 of the previous 8 weeks. Known-issue share is complaints on known issues divided by all complaints that week.
Spike: a week at least double the theme’s median for the previous 8 weeks, with 30 or more complaints. It ends after two weeks under 1.2 times that median. It came back if the theme spiked again within 12 weeks.
First sign: the first of two weeks at 1.5 times the median. Warning is the number of weeks from the first sign to the peak.
Relief share: complaints on one issue in one sector and quarter closed with monetary or non-monetary relief, divided by all complaints on that issue that quarter.
Uphold rate: as the Financial Ombudsman publishes it, on cases resolved in the year.
How we label numbers
Exact: a count from the published records.
Approximate: rounded by the publisher, or a figure with its 95% interval (Wilson for a share; a bootstrap for pooled shares, medians and correlations).
Noise: a difference or correlation whose interval includes zero; we never report it as a change.
Minimum volumes
A sector needs 10,000 or more complaints in the period and a median of 50 or more a week. A headline percentage needs 400 or more cases and carries its 95% interval. A count of spikes needs 30 or more. No company may account for more than 25% of any theme or spike we publish (checked with the company field, never published).
Nine CFPB sectors pass. Debt management does not (8,304 complaints, exact). Credit reporting passes on volume but is run for comparison only: the CFPB reported more than five million such complaints in 2025, up more than 3,700%, and announced changes to its complaint system in June 2026.
Limits
Complaints to a regulator are a small, self-selected slice.
There is no customer identifier: a repeat is the same problem recurring across customers, not one person contacting twice.
Volume follows market size and intake changes. Complaints in the nine sectors rose 58% from Q4 2024 to Q2 2026.
Association is not cause. Some themes persist because a product or rule changed, and many companies fix fast. Industry levels can fall a long way: Ofcom’s broadband complaint average fell from 13 to 6 per 100,000 customers, early 2019 to early 2026.
We test many themes and thresholds; the threshold log records every one.
Definitions change answers. Looser spike rules find more spikes that come back, so we show results at 1.5 and 3 times the median too.
Counts are not seasonally adjusted. The 8-week comparison absorbs slow drift, not a holiday week.
An upheld ombudsman case is not proof that a firm fixed nothing.
Footers
Every finding carries two footers.
Method: source, sample, period, aggregation, the main caveat, and a link to this page.
Privacy: “Public data, analysed by OnClarity Labs. Sector level only; no company or person named.”
Related work
Sujan Sapkota’s preprint “Detection Is Not Early Warning” (Research Square, 15 Sep 2026) found that CFPB complaint narratives register shocks fast but give no systematic advance warning. Our weeks-of-warning finding agrees, on newer data. Uphold rates are the Financial Ombudsman’s own figures; we chose the products before reading the rates.
Corrections
We re-run every headline finding once a year and show the new number beside the old one. When we find an error, we correct the finding and this page with a dated note saying what changed. We never delete a finding.
How to reproduce
The analysis notebook (Python 3.11, with requirements.txt) runs end to end. Cell one holds every threshold. Raw files are never edited. Setting PULL_FROM_API to true re-downloads the weekly counts from the CFPB API and compares them with the saved files. It writes each chart’s CSV, the data manifest, theme mapping, sector minimums and threshold log.
