Every stablecoin payout, priced against the venues you didn't use.
BPSMeter reprices your past payouts against the venues that could have filled them, shows you the gap in basis points and turns it into a routing sheet your desk can follow. You keep executing on your own accounts.
One number, and every ticket behind it.
For each payout we find the cheapest venue that would have accepted that exact ticket size, at its published or quoted rate, and compare it with what you actually paid. The result is free, and it's yours to keep.
- Per-fill repricingAgainst the best single venue, the best split across venues and a composite benchmark.
- BreakdownsBy corridor, by provider and by month, including where your volume is concentrated.
- Signed resultsFills where you beat the model count against the gap, not only the ones where you lost.
- Nothing silently droppedA ticket we can't price is listed with the reason, next to what you paid for it.
- Traceable to your filesWhat each file contributed, and every row we couldn't use, with its line number and why.
- PDF and JSONA document for your finance team and the raw data for your engineers.
| corridor | fills | paid | best venue | gap | |
|---|---|---|---|---|---|
| USD-COP | 22 | 142.1 | 20.0 | $82,307 | actionable |
| USD-MXN | 34 | 24.0 | 10.4 | $21,124 | actionable |
| USD-BRL | 26 | 29.7 | 15.0 | $18,596 | actionable |
| USD-EUR | 20 | 12.0 | 8.0 | $13,603 | at market |
| USD-NGN | 18 | 86.2 | 70.0 | $1,363 | actionable |
bps unless noted. "actionable" means a gap of 10 bps or more, the bar we use for a corridor worth changing.
Then a sheet your desk can actually follow.
The findings become a standing instruction. For each corridor, a handful of ticket-size bands, each naming the venue to use (or the order to fill a split in) and the all-in cost to expect. Your desk places the trades. We never do.
| ticket size | send it | expected | you paid | verdict |
|---|---|---|---|---|
| $1k to $50k | local off-ramp | 95.0 estimate | no flow | no flow here |
| $50k to $3M | stablecoin FX RFQ | 20.0 estimate | 142.1 | move this flow |
| above $3M | split, RFQ first | 20.0 to 21.3 | no flow | no flow here |
Every ticket in your export is re-priced under the band it falls in, so the headline is what following the sheet would have done. Figures shown are from the sample book.
Inside a band, the instruction is never more than 0.5 bps worse than deciding that exact ticket on its own. That's what keeps the sheet short enough to use.
Leave out venues you won't onboard, whole channels or specific issuers, or limit the sheet to GENIUS Act permitted issuers. Excluded venues never appear.
Priced on real quotes, capped at real liquidity.
Where a venue publishes prices, we pull them read-only at several ticket sizes and measure how much size it can actually take. No venue is ever offered past the size it could fill.
OTC desks and off-ramps quote privately, so their prices are modeled and marked as estimates everywhere they appear. Sources are public market data. They aren't partners of BPSMeter.
We see six columns. Nothing else.
The analysis needs date, corridor, provider, notional, fee and cost in bps. Our anonymizer runs on your machine first, strips everything else and tells you exactly what it removed.
$ node cli.mjs anonymize --fills payouts-q3.csv --out safe.csv kept (safe to send) date, corridor, provider, notional_usd, fee_usd, bps dropped (never leaves your machine) Status, Payment ID # safe.csv is the only file you'd ever send
No custody, no credentials
We never hold funds, never ask for venue logins and never place a trade.
Nothing sent anywhere
The anonymizer and the report engine read a local file and write a local file. The only outbound calls are for public market quotes.
Used once
Your file is used for your report and deleted on request, under a mutual NDA and a data processing agreement. Or share your screen for fifteen minutes and send nothing.
The same engine, before the ticket goes out.
Design partners get pre-trade routing over an API. Send a corridor, a size and a deadline, and get back the route, the expected all-in cost and the quotes behind it. It isn't public yet.
curl https://api.bpsmeter.com/v1/route \ -H "Authorization: Bearer $BPSMETER_KEY" \ -d '{"corridor":"USD-COP","notional":250000,"deadline":"2m"}' # response { "all_in_bps": 20.0, "vs_single_source_bps": 142.1, "route": [{ "venue": "stablecoin_fx_rfq", "pct": 100 }], "execute_on": "your_credentials" }
Start with the free report.
If the report doesn't find a gap worth closing, you've lost nothing. If it does, the routing sheet is how you close it.
A one-off look at 30 to 90 days of your payouts.
- Full repricing of every fill
- Gap by corridor, provider and month
- The specific tickets worth moving
- PDF and JSON, yours to keep
The sheet, kept current as venues and your flow change.
- Routing sheet rebuilt each month
- Priced on fresh venue quotes
- Your constraints and exclusions applied
- Tracking of whether your gap is closing
Pre-trade routing for each ticket, built with a few early users.
- Route and expected cost per ticket
- The quotes behind every answer
- Execution stays on your accounts
- Limited design partner spots
Send us 90 days of payouts. Get your number back.
Run the anonymizer, send the file, and we'll come back with your all-in cost, the gap by corridor and where the next ticket should go.