"Risk-free Kalshi arbitrage" is the most-searched free-money fantasy in prediction markets. We took it seriously enough to build real scanners on live Kalshi and Polymarket data — and to put the exact fee formula we run in production into the math. Here is the deep, honest answer: what arbitrage on Kalshi truly is, the myth that won't die, the one structural edge that's real, and exactly why the fee curve means there is no free money sitting on a regulated venue.
This is the arbitrage-specific companion to our broader order-book reality check: that piece is about why most Kalshi markets are untradeable noise; this one goes deep on arbitrage itself.
And once a genuine edge does clear the fee curve, capturing it still comes down to bet sizing — see position sizing with the Kelly criterion.
The single-market myth: "YES + NO doesn't sum to $1"
You will read, everywhere, that if YES and NO on the same Kalshi contract don't add to $1.00 you've found a lock. On Kalshi this is structurally false. A Kalshi market is one binary contract that pays $1.00 to exactly one side at expiry. Buying NO is mechanically the same trade as selling YES, and the book is quoted so the two sides straddle 100¢ with a spread — never a harvestable gap. The "gap" you see is the bid-ask spread itself: the price of crossing the book, not an edge waiting to be taken. If a tool reports single-market lock arbitrage on Kalshi, it has a bug, not a find. This myth is imported from sportsbook and crypto contexts and does not survive contact with how Kalshi's book is constructed.
The fee curve — the thing every "arb" calculator forgets
You cannot reason about Kalshi arbitrage without the fee, and almost every guide online quotes the spread and stops there. Here is the exact model we run in our own bot:
Per-contract trading fee = ⌈ 0.07 × price × (1 − price) × 100 ⌉ cents, with price in dollars (0–1), charged on the trade and not on expiry settlement. Two consequences decide everything below:
- The fee is a dome that peaks at 50¢. At 50¢ it is ⌈1.75⌉ = 2¢ per contract. At 25¢ or 75¢, ⌈1.31⌉ = 2¢. At 10¢ or 90¢, ⌈0.63⌉ = 1¢. At 5¢ or 95¢, ⌈0.33⌉ = 1¢. Mid-priced contracts are the most expensive to trade; the extremes are the cheapest.
- The maker rebate roughly halves it. A limit order that rests and gets filled (maker) pays about half the taker fee — integer-halved, so a 1¢ taker leg is free as a maker. That is why every honest Kalshi edge is a limit-order edge.
Keep that dome in your head. It is the reason the only real arbitrage that survives shows up where you'd least expect it.
The one structural edge that is actually real
The real edge is not within a market — it is across the field of a multi-outcome event, and only when that event is mutually exclusive (exactly one outcome can resolve YES):
- If the YES asks across every outcome sum to less than 100¢, buy the whole field — one leg is guaranteed to pay $1.00. That is a locked long edge.
- If the YES bids across every outcome sum to more than 100¢, sell the whole field for a locked short edge.
The mutual-exclusivity condition is the entire game. "Who will the President pardon?" or "Who will run in 2028?" are not mutually exclusive — many of those outcomes can each resolve YES, so a high sum there is legitimate pricing, not an arbitrage. Kalshi exposes a mutual-exclusivity flag on events, and any honest scan must gate on it. Skip that gate and you generate confident, completely false signals on exactly the multi-winner markets that look most tempting.
Work the real math: a "4¢ arb" that isn't
Here is the calculation every spread-only calculator skips. Take a genuinely mutually-exclusive four-outcome event with YES asks of 30¢, 28¢, 24¢, and 14¢. They sum to 96¢ — a textbook 4¢ buy-the-field lock. Now apply the dome:
- 30¢ → ⌈0.07 · 0.30 · 0.70 · 100⌉ = ⌈1.47⌉ = 2¢
- 28¢ → ⌈1.41⌉ = 2¢
- 24¢ → ⌈1.28⌉ = 2¢
- 14¢ → ⌈0.84⌉ = 1¢
Entry fees total 7¢ as a taker. One leg pays $1.00 at expiry with no settlement fee, so the real math is: 100¢ payout − 96¢ entry − 7¢ fees = −3¢. The "4¢ arbitrage" is a 3¢ loss if you cross the spread to take it. Rest all four as maker limit orders and the fees roughly halve to ~3¢, turning it into a +1¢ lock — but now you carry fill risk on four separate resting orders, and if only three of the four fill you are not arbitraged, you are exposed. That one example is the whole guide: the edge is not the spread, it is the spread minus the dome, and at size that is almost never positive.
What the scanner actually found
We built an internal, pure-math scanner — no model, no predictions, just the field arithmetic above on real Kalshi events. A naive field-sum scan flagged 25 apparent "arbitrage" events. Gating to genuinely mutually-exclusive events cut that to roughly 14 real candidates, with zero false positives in that run. Then the honest part — every survivor was thin and longshot, and the fee dome explains exactly why:
- Longshot, because that is where the fee is cheapest. A field-sum gap only survives net of fees where each leg costs about a cent or less — the tails of the dome. Mid-priced fields have their gap eaten by 2¢ a leg. The math forces the real candidates into longshot-heavy events.
- Thin, because depth is capped at the smallest leg. A four-leg lock with legs showing 200, 150, 90, and 18 contracts is an 18-contract trade, not a 458-contract one. The narrowest outcome sets the entire size.
- Fragile, because legging takes time. By the time leg four fills, legs one through three have repriced. The gap you scanned is rarely the gap you can execute.
No free money was sitting unclaimed — exactly the expected result on a regulated, fee-charging exchange that bots already watch. If structural arbitrage existed at size, it would already be gone. The discipline of the gate, with the real fee in the math, is the deliverable — not the 14 markets.
"But what about Kalshi vs. Polymarket?"
Most people searching "Kalshi arbitrage" are picturing buying an event cheap on one venue and selling it dear on another. Be honest about what that actually involves: capital split and stranded across two platforms, withdrawal and settlement timing risk, execution risk if one leg fills and the other moves, and the single most-competed corner of the entire space. It is a different game with a different risk profile — not the risk-free trade it is marketed as.
And the part nobody markets: even finding a real cross-venue pair is unsolved. We built a separate read-only experiment that matched live Kalshi events to live Polymarket questions by shared text — the step any cross-venue bot must clear before it can trade. It produced almost only false pairs: markets that share most of their words but resolve on different events ("who will win the nomination" vs. "will this specific person win the nomination"; a multi-candidate field vs. a single yes/no). We added an entity gate and restricted to clean binary markets and it still mostly produced wrong pairs, because token overlap cannot tell "the same words" from "the same contract."
Confirming two contracts settle on the identical event means lining up three things keyword-matching cannot see:
- Resolution authority. Kalshi names an official source and a settlement rule in the contract; Polymarket resolves via its own oracle. The same real-world event can resolve differently if the sources disagree — that is oracle-divergence risk, and it does not net to zero.
- Cutoff and timezone. "By the end of 2026" is not the same boundary if the two venues use different close timestamps.
- Scope. "Wins the nomination" vs. "is the nominee" vs. "is the presumptive nominee" are three different contracts that share every keyword.
That verification is the actual moat, and it does not scale by keyword. It is precisely why the serious cross-venue tools invest in LLM-grade matching, and why we treat naive cross-venue signals as noise, not edge. We deliberately do not build for cross-venue arbitrage — the entire approach here is Kalshi-native and disciplined, and that is a choice, not a missing feature. For the honest head-to-head, read Kalshi vs. Polymarket.
So is arbitrage worth it?
As a "free money" play, for almost everyone: no. Anyone selling you a risk-free Kalshi arbitrage bot is selling the fantasy, not the math — and the math is the fee dome, the mutual-exclusivity gate, and the verification problem above. The edge that actually compounds is not structural arbitrage a regulated venue has already closed — it is disciplined, rules-based execution against your own process: defined entries, sane sizing, the real fee in the math, and paper-testing before real capital. Our Kalshi trading strategies guide covers the durable approaches, the order-book reality check shows why most "edges" are untradeable, and our 369-trade postmortem is a forensic look at what undisciplined "the thesis was sound" building actually costs.
None of this is financial advice, and past results never guarantee future ones. The honest takeaway is simpler than the fantasy: the money on Kalshi comes from process, not from free arbitrage that isn't there.
Build the disciplined version instead
Codify clear rules — price conditions, sizing, fees in the math — into a bot, no code required. The boring, durable approach, automated.
Frequently Asked Questions
Quick answers to common questions about Kalshi Arbitrage: What's Real and What's a Myth (We Built the Scanner).
Is Kalshi arbitrage actually risk-free?
No. The single-market 'buy YES and NO under a dollar' lock does not exist on Kalshi because NO is mechanically derived from YES so the two always sum to about 100 cents. The only real structural arbitrage is field-sum across a mutually-exclusive event, and in a live scan every genuine candidate was thin, longshot, and barely positive net of fees. Treat any 'risk-free Kalshi arbitrage' claim as marketing, not math.
What is field-sum arbitrage on Kalshi?
On an event where exactly one outcome can resolve YES, the YES prices across all outcomes should sum to about 100 cents. If the YES asks sum to less than 100, buying the whole field locks a long edge; if the YES bids sum to more than 100, selling the whole field locks a short edge. It only works on genuinely mutually-exclusive events, which Kalshi flags explicitly.
Can you arbitrage between Kalshi and Polymarket?
In principle, but it is not the risk-free trade it is sold as. It requires capital funded on both venues simultaneously, exposes you to settlement and withdrawal timing, and carries execution risk if one leg fills and the other moves. It is also the most heavily-competed corner of the space. We deliberately do not build for cross-venue arbitrage.
How do Kalshi's fees affect arbitrage?
Kalshi's per-contract trading fee is about the ceiling of 0.07 times price times one-minus-price (price in dollars), charged on the trade and not on settlement. It is a dome that peaks near 2 cents at 50-cent prices and falls to about 1 cent at the extremes, with a maker rebate that roughly halves it. A field-sum lock must clear that fee on every leg, so a 4-cent gross arbitrage across four legs can be a net loss as a taker. Any arbitrage claim that quotes the spread without subtracting the fee on every leg is incomplete.
Why were all the real Kalshi arbitrage candidates longshots?
Because the fee is smallest at the extremes. A field-sum gap only survives net of fees where each leg costs about a cent or less to trade, which is the longshot tail of the fee curve. Mid-priced fields have their gap eaten by the higher fee, so the math forces genuine structural-arbitrage candidates into thin, longshot-heavy events — exactly what our live scan found.
Free office hours with the founders
Drop in Mon, Tue & Wed at 9 AM Pacific — we'll help you build and run your Kalshi bots, live. Everyone welcome, no registration.
See office hours →Can't make 9 AM? Book a free 1:1 instead.