The finding
We looked at 35,171 charge lookups covering 33,732 distinct descriptor strings — every one of them a case where somebody looked at their statement and could not tell what they had paid for.
For 48.9%, the true merchant could not be confidently determined at all.
That number held up against an independent check. On 46.2% of lookups our own identification returned low confidence, arriving at roughly the same conclusion by a different route.
This is not a story about people being careless with their money. It is a story about a data format that loses the one piece of information the reader needs.
What a descriptor actually is
The line on your statement is a billing descriptor: a short text field assembled upstream and passed down the payment chain to your bank, which prints what it is handed.
Four things happen to it on the way, and each destroys information:
Character limits. Descriptor fields are short — commonly around 22 to 25 characters. Longer names get truncated, often mid-word, and often after a prefix has already consumed a third of the space.
Processor prefixes. When a business uses a payment platform, the platform frequently puts its own identifier first. What survives is the platform's name plus whatever fits of the merchant's.
Legal versus trading names. Businesses bill under the entity that holds the merchant account. "Joe's Pizza" may bill as "JPZ HOLDINGS LLC" because that is what is on the paperwork.
Parent companies. Large groups consolidate billing. The subsidiary you bought from disappears behind a corporate name you have never associated with it.
Stack all four and the output is a string with no recoverable link to the thing you bought.
The shape of the problem
Across the lookups, this is what people were actually trying to identify:
| Charge type | Share of lookups |
|---|---|
| One-off purchases | 46.2% |
| Unidentifiable | 37.9% |
| Transfers | 8.7% |
| Subscriptions | 5.3% |
| Bank fees | 2% |
Two things stand out.
"Unidentifiable" is a category in its own right, at 37.9%. These are not charges people misremembered. They are descriptors that do not resolve — machine-generated codes with no human-readable component at all.
Subscriptions are only 5.3%. This is the opposite of the received wisdom that forgotten subscriptions are the main source of statement confusion. They are the most *written about* cause because they have a satisfying fix. They are not the most common one. One-off purchases dominate, and one-off purchases are harder, because there is no recurring pattern to recognise and no subscription list to check.
Payment processors are the largest single cause
Ranked by how many distinct descriptor strings each generates in our data:
| Merchant | Distinct descriptors |
|---|---|
| PayPal | 132 |
| Amazon (all variants) | 202 |
| 76 | |
| Cash App | 58 |
| Square | 55 |
| Whop | 50 |
| Apple | 43 |
| Bank of America | 34 |
PayPal alone accounts for 132 distinct descriptor strings. Amazon, across its variants, 202.
Read that carefully, because it is the mechanism of the whole problem. These are not 132 different charges. They are 132 different *ways the same intermediary's name appears* on a statement, each one displacing the name of the business that actually sold you something. Google contributes 76, Cash App 58, Square 55.
When a processor's name occupies the descriptor, identification stops being about memory. You are not trying to remember a purchase; you are trying to reverse a mapping that the format discarded.
What to do with a charge that will not resolve
- Strip the prefix. Everything before the asterisk is usually the processor — "SQ *", "PP*", "PAYPAL *", "TST*", "WPY*". The useful part is what follows it.
- Search the remainder in quotes. If a string reached us, it has reached others. Exact-match search finds the people who already asked.
- Search your email for the amount, not the name. The receipt will use the trading name you recognise even when the statement does not.
- Check app-store subscriptions on both platforms. Apple and Google consolidate billing across many apps under their own name.
- Ask an authorized user. Shared accounts explain a large share of "nobody here bought this."
- Then call the bank. Ask for the full merchant name and the merchant category code. Your bank can see fields your statement does not print, and the MCC alone often identifies the industry well enough to jog the memory.
Before you dispute
Identification comes first. A charge you cannot name is not the same as a charge you did not authorize, and reporting one as the other has real costs: a closed card, cancelled recurring payments, and a fraud claim on record that is harder to withdraw than to file.
Once you have identified it and it is genuinely wrong, the deadlines that apply run from the date your statement was sent — not the date you noticed.
Methodology
Aggregated from 33,732 distinct descriptor strings submitted to our free lookup tool in 2026, 31,045 of them within the trailing 90 days. Counts and percentages only, with no personally identifiable information. "Unidentifiable" means the true merchant could not be confidently determined. Full methodology accompanies the study itself.