On this page
Why fees change the price
A sportsbook builds its margin into the price. An exchange or prediction market lets traders set prices and charges a fee instead: per contract, on winnings, or on the pot. A 50¢ contract looks like even money, but after the fee you pay more than 50¢ for a $1 payout. Compare venues on quoted prices and you'll get the wrong answer. Every tool on this site compares net prices after the venue's published fees, and the fees calculator does it for any price.
Fee models by venue
| Venue | Fee | How it's charged |
|---|---|---|
| Kalshi | 0.07 × C × P × (1 − P) × series multiplier | Taker fee, rounded up to the cent per order. MLB series use a 0.5 multiplier. |
| Polymarket US | 0.0695 × C × P × (1 − P) | Taker fee, rounded to the cent (round half to even). |
| Novig | 0 pregame | No taker fee pregame; we only show pregame prices. |
| ProphetX | 2% of net winnings | Net decimal = 1 + (d − 1) × 0.98. |
| BetOpenly | 1% of the total pot | Net decimal = d × 0.99. |
| Betfair, Smarkets, Matchbook | Commission on net winnings | Reference books; not available to US bettors. |
C is the number of contracts and P the price paid. Fees per contract peak at 50¢ and shrink toward 0¢ and $1. Where a venue doesn't publish its fee, we don't guess: the price is left unpriced.
Worked examples
Contract fees depend on order size because of cent rounding, so we price a $100 reference order: C = round(100 ÷ P).
Kalshi at 50¢: C = 200; fee = ceil(0.07 × 200 × 0.25) = $3.50; outlay $103.50 for $200 → net 1.9324 (−107) vs quoted +100
Kalshi at 25¢: C = 400; fee = ceil(5.25) = $5.25; outlay $105.25 for $400 → net 3.8005 (+280) vs quoted +300
Kalshi at 80¢: C = 125; fee = $1.40; outlay $101.40 for $125 → net 1.2327 (−430) vs quoted −400
Kalshi MLB at 50¢ (multiplier 0.5): net 1.9656 (−104)
Polymarket US at 52¢: C = 192; fee = $3.33 → net 1.8610 (−116)
ProphetX at +110: 1 + 1.10 × 0.98 = 2.0780 (+108)
BetOpenly at +110: 2.10 × 0.99 = 2.0790 (+108)
Novig at +110 pregame: 2.10 (+110)
Small orders cost more per dollar. One Kalshi contract at 50¢ has a fee of 1.75¢ rounded up to 2¢, so it costs 52¢: a net price of −108 instead of −107 at 200 contracts.
The same quote across five venues
The same price, quoted at each venue, priced at your net for a $100 order. ProphetX and BetOpenly quote American odds; the column shows the same price.
| Quote | Kalshi | Polymarket US | Novig (pregame) | ProphetX | BetOpenly |
|---|---|---|---|---|---|
| 50¢ (+100) | −107 (1.9324) | −107 (1.9327) | +100 (2.0000) | −102 (1.9800) | −102 (1.9800) |
| 45¢ (+122) | +114 (2.1398) | +114 (2.1404) | +122 (2.2222) | +120 (2.1978) | +120 (2.2000) |
| 60¢ (−150) | −161 (1.6212) | −161 (1.6215) | −150 (1.6667) | −153 (1.6533) | −154 (1.6500) |
The per-contract venues cost the most near 50¢: $3.50 on a $100 order. Commission on winnings (ProphetX) costs less on favourites, where winnings are small relative to the stake. A pot share (BetOpenly) costs a flat 1% of the payout. And a quote that looks one tick better at a fee venue can be worse than a fee-free price one tick lower.
Small orders and cent rounding
Kalshi rounds the fee up to the cent on each order, so small orders pay more per contract:
| Contracts at 50¢ | Fee | Fee per contract | Net |
|---|---|---|---|
| 1 | $0.02 | 2.00¢ | −108 (1.9231) |
| 5 | $0.09 | 1.80¢ | −107 (1.9305) |
| 50 | $0.88 | 1.76¢ | −107 (1.9320) |
| 200 | $3.50 | 1.75¢ | −107 (1.9324) |
At 45¢, one contract nets +113 and 200 contracts net +114. Polymarket US rounds to the nearest cent instead, but one contract at 50¢ still pays a 1.74¢ fee rounded to 2¢. The effect fades by a few dozen contracts, which is why our tools use a $100 reference order.
Makers can pay less. Kalshi charges resting orders a maker fee only on series flagged for it, at a quarter of the taker rate: a 50¢ maker fill on such a series nets 1.9826 (−102), and zero fee elsewhere. Our net prices assume you take the quoted price, because that's the price you can be sure of getting.
Depth: how much is available at the price
A sportsbook price is an offer to anyone, up to its limit. An exchange price is a specific resting order: someone offered a certain number of contracts at that price, and the next contract may cost a cent more. Where we have depth data for a venue, the tools show the dollars available under the price. Where we don't, assume the quote may be small. On BetOpenly especially, a listed price is one user's finite offer. A large order can walk through several price levels, and each level pays its own fee, so your average net price ends up worse than the top quote's.
What a fee does to an edge
Fair 55%, Kalshi at 52¢ before fees: 0.55 × 1.9231 − 1 = +5.77%
After the fee (net 1.8605): 0.55 × 1.8605 − 1 = +2.33%
The fee took more than half of the edge. On the Odds Screen and the +EV finder, the amber net subline under an exchange price is this number.
Pitfalls
- Thin markets. An exchange quote is someone's resting order and may be good for only a few dollars. Check depth.
- Maker vs taker. Our net prices assume you take the quoted price. Resting your own order can be cheaper, but it may not fill.
- Fee schedules change. Our fee table carries its sources and the date we checked them; confirm on the venue.
- Availability. Check that a venue is available where you live. On the Account page, Georgia users can use Usable in my state to pick venues our research found usable there.
In build
This tool is in build on the same tested engine. The app shows what is coming and what already runs.