What everyone actually pays, as a CSV.
Nobody publishes what businesses really pay to take cards, so we are publishing it. One row per group, no signup, no key, no per-merchant records at any count.
No group has cleared 20 submissions yet
What is in the file
Each row is one group of businesses, keyed by processor and monthly volume tier, optionally narrowed by industry or by state. There is no row for a business, and there is no request that produces one.
-
dimension
Which axes the row aggregates over: processor_tier, processor_tier_industry, or processor_tier_state.
-
processor_key
One of square, stripe, clover, toast, fiserv, or other. The processor name printed on a statement is never in the dataset, only this key.
-
volume_tier
Monthly card volume bucket, normalized to a 30.44-day month before the bucket is picked.
-
industry
The industry the submitters chose, from a fixed list. Empty on a cell that aggregates every industry.
-
state
The US state the submitters chose. Empty on a cell that aggregates every state. Never set on the same row as an industry.
-
n
Submissions behind the row. Never below 20, because a row below the floor is not served at all.
-
p10_bps, p25_bps, p50_bps, p75_bps, p90_bps
Effective rate percentiles in basis points, as integers. 245 is 2.45%. Basis points rather than percentages so nothing in the file is a rounded float.
-
mean_markup_share_bps
Average share of total fees that was processor markup, in basis points of fees. This is the negotiable part of the bill.
-
mean_other_fees_share_bps
Average share of total fees that was monthly, statement, PCI, batch, chargeback, and equipment charges.
-
fee_taxonomy_version
The version of the classification rules the row was computed under. Compare rows across versions only after reading the changelog.
-
updated_at
When the row was last recomputed. Rows recompute the moment a qualifying submission lands, so this is also the freshness stamp.
The endpoint serves whatever has cleared the floor at the time you call it. The benchmark pages on this site read a committed snapshot of the same aggregates, refreshed weekly, so a page and the live file can differ by a few days. The JSON carries two things the CSV of cells cannot express: the shape of the whole index as binned counts, and each processor across every volume tier at once. Both clear the same floor as a cell. How the numbers are made
Changelog
Classification rules change as unfamiliar fee descriptions arrive, and a change moves dollars between categories. Every change bumps the version, every published row carries the version it was computed under, and every version is listed here.
-
2026-08.1
August 2026
First published taxonomy. Four categories: interchange, assessments, processor markup, and other fees, matched by an ordered rules table written against real statement descriptions.
Request your processor
Statements from processors we have not named still convert and still get you a result; they are grouped under the key "other" in the index. Naming yours is what earns it a key and a benchmark page of its own, so tell us who bills you.
Nothing else is sent with this, and there is nothing to unsubscribe from. If you would rather write, the address is contact@ledgerbox.io.