Calculator
Prediction Market Arbitrage Calculator
About this calculator
A book-against-book arbitrage calculator cannot price this trade, because one leg charges a fee on top of its price.
Prediction market arbitrage covers both sides of one event across an exchange and a sportsbook, so every outcome pays the same. The exchange fee is the catch: it comes off the gap first, and it usually eats it.
Why the usual test fails here
Across two sportsbooks you compare two prices and you are done. Here one leg is an exchange contract, and the exchange takes a cut on the trade that is not inside the quoted price.
So the fee has to come out first, and then you test. Very often it eats the entire gap, and the honest answer is that there is no arbitrage.
The fee moves the bar by about 7.25 points of American odds. Gaps smaller than that are not gaps.
Contracts are also whole numbers. You cannot buy 41.6 of them, and on a small position that rounding is real money.
Want more math?the Nerd Corner
where:
- : the exchange ask for the side you are buying, in dollars (not the midpoint, which nobody is offering).
- : the fee-adjusted cost of one contract, in dollars, on the standard Kalshi taker schedule: what you pay per $1.00 of payout.
- : the sportsbook’s posted decimal odds on the opposite side, vig still in it. Nothing gets de-vigged here.
- : the two break-even probabilities added, dimensionless. Below 1.00 the pair covers itself for less than it pays; at or above 1.00 there is no arbitrage.
- : the locked return as a fraction of total outlay, after the fee and with the book’s margin already inside .
- : total dollars committed across both venues. Splits as on the exchange and at the book.
Worked example: the numbers in the form below
An NFL game. The exchange quotes “Team A wins” at 49¢ bid / 50¢ ask; a sportsbook posts −135 / +115. The example takes the contract for A and the book for B.
Sized contract-first at contracts, so both legs pay $1,000:
Check a pair of prices
The panel takes American odds for both venues, so the exchange leg goes in fee-adjusted. The table below has the common prices. It prints the stake split, the locked return, or the absence of one.
Getting the exchange leg’s fee-adjusted price
One conversion, from the ask you would actually pay. The right-hand columns are the same fact from the other side: what the sportsbook must beat for any arbitrage to exist.
| Exchange ask | Fee-adj. cost | Enter as (American) | Book must beat | …if the fee were zero |
|---|---|---|---|---|
| 20¢ | 0.2112 | +373.48 | −373.48 | −400.00 |
| 40¢ | 0.4168 | +139.92 | −139.92 | −150.00 |
| 50¢ | 0.5175 | −107.25 | +107.25 | +100.00 |
| 51¢ | 0.5275 | −111.64 | +111.64 | +104.08 |
| 55¢ | 0.5673 | −131.12 | +131.12 | +122.22 |
| 60¢ | 0.6168 | −160.96 | +160.96 | +150.00 |
| 80¢ | 0.8112 | −429.66 | +429.66 | +400.00 |
Note the 51¢ row: on a 49/50 book the exchange’s other side costs 100 − 49 = 51¢, which is why the form’s exchange fields are −107.25 and −111.64, not a matched pair.
The fee moves the bar by 7.25 points of American odds
Everything here reduces to one comparison. Without a fee, a 50¢ contract on side A pairs with anything better than +100; with the taker fee the bar is +107.25:
That is 1.75 probability points, and it is why exchange-versus-book pairs that look arbitraged usually are not. Both costs have to clear, and they sit in different places: the book’s inside the price, the exchange’s bolted on after ( of outlay at 50¢).
No arbitrage is an answer
Same 50¢ contract, same side A, but now the book prices side B at +105 instead of +115:
A gap that does not survive its costs
Contracts are integers; stakes are not
The stake split is continuous; the exchange leg is not. Contracts come in whole units, so the two payouts rarely match to the cent:
At a thousand contracts the rounding costs two cents; at twenty, on a market whose fee rounds up a full cent, it is a much larger share. Round the count down and size the book stake off the contracts actually filled.
Round trips are taxed twice
The locked figure assumes both legs run to resolution. Exchange fees are per trade and settlement is free, so an early exit on the contract leg adds a second fee:
That turns a $17.38 locked margin into a 12-cent loss, before whatever the exit price does to the hedge. On this pairing the illiquid path is the cheap one.
Execution risk, priced where it can be
- Depth, not price. The ask prices only the contracts resting at it: 300 at 50¢ then 700 at 51¢ makes 0.5245 and drops the locked margin from $17.38 to $10.38.
- Partial fills. A half-filled exchange leg against a matched book leg is a directional position, not a hedge.
- The clock. Two venues, two confirmations, and arb decay measured in seconds, which is why arbitrage stays a free calculator here, not a paid alert.
- Settlement rules diverge. The exchange grades against the contract’s rulebook, the sportsbook against house rules; overtime, abandonment and what counts as an official result are defined separately, and where they disagree the legs are not the same event. A postponed Kalshi game can also re-ticker, leaving a stalled quote that still renders live.
- Account treatment. Sportsbooks limit accounts that consistently take arbitrage prices; an exchange earns its fee whichever side wins and has no reason to care.
- Capital in two places. The return is on capital committed at both venues, not on capital you could deploy elsewhere meanwhile.
- A large number is usually a stale leg. Above roughly 12% return the panel demotes an arb to a caution rather than presenting it as value.
Why the book-versus-book calculator cannot do this
The standard arbitrage calculator assumes both legs are quoted the same way: price in, payout out, all costs inside the number. An exchange breaks that: its cost is a separate line item scaling with , the inverse of how a book’s margin behaves, so a book-versus-book tool fed a raw contract price overstates the edge.
The fix is the line at the top of this page: adjust the contract leg to first, and the ordinary arbitrage arithmetic applies unchanged.
Sources
- Kalshi. “Fee Schedule” (July 2026 revision). The taker formula, the round-up rule, and the zero settlement fee that makes holding cheaper than trading out.
- Burgi, C., Deng, W. & Whelan, K. (2026). “Makers and Takers: The Economics of the Kalshi Prediction Market.” GWU Working Paper 2026-001. PDF. Taker cost and price behaviour across 300k+ settled contracts.
Frequently asked questions
How do you calculate an exchange versus sportsbook arbitrage?
Add the exchange leg’s fee-adjusted cost per contract to the inverse decimal odds of the book’s posted price on the opposite side. Below 1.00 the two legs cover each other for less than they pay; the locked return is 1 divided by that sum, minus 1.
Why does the exchange fee kill most of these arbitrages?
Because it is charged on the leg that looks cheapest. A 50¢ contract taken as a taker costs 51.75¢ per $1 of payout, so the book has to beat +107.25 rather than +100. On a $982.62 position the fee took $17.50 of a $34.88 gross gap.
What happens when the gap does not survive the fee?
The panel flags “no arb at these prices” and prints the shortfall rather than a locked profit. A 50¢ contract against a book at +105 sums to 1.0053, so both sides together cost more than they pay and the return reads −0.53%.