Arbitrage in Prediction Markets: Cross-Platform and Same-Event Opportunities
When two markets price the same event differently, one of them is wrong. Understanding how to identify, evaluate, and execute on prediction market arbitrage — and why it's harder than it looks.
Overview #
Arbitrage is the practice of exploiting price discrepancies for the same asset in different markets. In prediction markets, this takes two main forms:
- Cross-platform arbitrage: The same event contract is priced differently on Kalshi vs. Polymarket
- Same-platform arbitrage: Related contracts within a single platform are inconsistently priced
True arbitrage is risk-free profit. In practice, prediction market arbitrage involves execution risk, criteria mismatch risk, counterparty risk, and fee drag that make it considerably more complex than it appears.
Fi documented the institutional scale of prediction markets in Tradeweb Takes Minority Stake in Kalshi — Prediction Market Data Coming to Institutional Screens — the presence of professional arbitrageurs means obvious mispricings get corrected quickly. Exploitable opportunities require either genuine information advantage or careful cross-platform analysis.
The academic foundation for prediction market efficiency was laid by Wolfers and Zitzewitz (2004), who showed that market-generated forecasts consistently outperform most benchmarks — and that well-functioning prediction markets aggregate dispersed information effectively. The implication for arbitrageurs: markets get efficient fast, and persistent mispricings usually reflect structural friction, not informational disagreement.
@bobwest raised a fundamental question in the NexusFi community when CME event contracts launched: are these instruments legitimate trading tools or basically "rolling the bones?" The all-or-nothing payout structure makes arbitrage one of the clearest legitimate uses — locking in a spread across platforms converts a binary gamble into a defined-edge trade.
The 10-cent price gap looks like free money. After fees, criteria verification, capital lockup, and liquidity limits, it is often 3-4 cents on capital you cannot redeploy for 30 days. The math has to work at scale.
Cross-Platform Arbitrage: Kalshi vs. Polymarket #
The Basic Structure #
Cross-platform arbitrage works by buying complementary outcomes on different platforms. If Kalshi prices YES at 62c and Polymarket prices YES at 72c for the same event, the arbitrage trade is:
- Buy YES on Kalshi at 62c
- Buy NO on Polymarket at 28c (since NO = 100c - 72c = 28c)
Total cost per contract pair: 62c + 28c = 90c. Guaranteed payout: 100c regardless of outcome.
If YES resolves:
- Kalshi: Receive $1.00, spent $0.62 = +$0.38
- Polymarket: Receive $0.00, spent $0.28 = -$0.28
- Gross profit: +$0.10
If NO resolves:
- Kalshi: Receive $0.00, spent $0.62 = -$0.62
- Polymarket: Receive $1.00, spent $0.28 = +$0.72
- Gross profit: +$0.10
In both outcomes, you make +$0.10 gross before fees on a 10c price discrepancy. The key math: when the cheapest YES and the cheapest NO across both platforms sum to less than $1.00, an arbitrage exists. The further below $1.00, the larger the edge.
Why Fees Destroy Most Apparent Arbitrage #
Fees on both legs substantially reduce the gross arbitrage:
Kalshi entry fee (62c YES): 7% x 0.62 x 0.38 = $0.016 Polymarket fee (28c NO, equivalent ~72c YES): ~2% on winning side = ~$0.014 estimated
Total fees: ~$0.030 on a $0.100 gross opportunity Net arbitrage: $0.100 - $0.030 = $0.070
But wait — you also pay fees on exit if you don't hold to resolution: Kalshi exit fee at resolution: $0 Polymarket exit fee at resolution: $0 (fees charged on fill)
Holding to resolution eliminates exit fees. The net $0.070 holds if you hold both positions to resolution. But capital is locked on both platforms until resolution.
The Resolution Criteria Trap #
The most dangerous assumption in cross-platform arbitrage: that the two contracts resolve on the same event with the same criteria.
Reality: Kalshi and Polymarket often write criteria differently for the same underlying event.
Example: "Will the Fed cut rates in November?"
Kalshi: "Resolves YES if the FOMC target range upper bound decreases by >= 25 basis points at the November 2025 scheduled meeting, as stated in the FOMC statement released on November 7, 2025."
Polymarket: "Resolves YES if the Federal Reserve cuts interest rates in November 2025, based on the official FOMC decision."
Difference: Kalshi specifies >=25bps and the scheduled meeting only. Polymarket says any cut (could be an emergency unscheduled cut as small as 12.5bps). These are different contracts.
If the Fed implements an emergency 12.5bp cut, Polymarket resolves YES, Kalshi resolves NO. Your supposed arbitrage produces losses on both legs.
Recent academic research quantifies this problem at scale. Gebele and Matthes (2026) analyzed over 100,000 events across ten major prediction market venues and found that roughly 6% of all events are concurrently listed across platforms — and semantically equivalent markets still exhibit persistent price deviations of 2-4% on average, driven by what they call "semantic non-fungibility." The absence of a shared, machine-verifiable definition of event identity across platforms means true arbitrage is harder than headline price gaps suggest.
Mandatory step: Before any cross-platform arbitrage, read BOTH platforms' resolution criteria word by word and verify they're economically equivalent.
Same-Platform Arbitrage: Internal Consistency Checks #
Multi-Outcome Contracts That Don't Sum to 100% #
When a platform offers multiple mutually exclusive contracts for the same event, their implied probabilities should sum to approximately 100% (allowing for spread).
Example: Who wins the election?
- Candidate A YES: 58c
- Candidate B YES: 35c
- Candidate C YES: 12c
- Total: 105c = 5c above 100
This excess is normal — it represents the market maker's spread across three separate order books. It's not arbitrage-able in practice because the spread on each leg would consume more than the excess.
When YES + NO sums to more than $1.00, that excess is the embedded market maker vig — not exploitable arbitrage edge.
If the total much exceeds 100%, buying the NO of the most expensive contract (or the cheapest YES of underpriced candidates) can generate edge.
When to exploit: Total implied probability exceeds 110% or falls below 90% AND you can identify which contract is mispriced AND the fees don't consume the edge.
Conditional Contract Arbitrage #
Some platforms offer contracts like:
- "Will Y happen given X occurs?" (conditional)
- "Will X AND Y both occur?" (conjunction)
These can be inconsistent with unconditional contracts:
P(Y|X) x P(X) should equal P(X AND Y)
If the market prices these inconsistently, an arbitrage opportunity may exist.
Worked Example 1: Fed Rate Cut Path
Suppose the market prices:
- P(Fed cuts in March) = 45c
- P(Fed cuts in June given March cut) = 75c
- Implied P(cuts in March AND June) = 45% x 75% = 33.75c
If a P(Fed cuts both March AND June) contract exists and is priced at 40c, there's a 6.25c theoretical edge. You could sell the conjunction contract at 40c and buy the conditional components.
Execution: Sell "Both March AND June" at 40c (receive 40c now, owe $1 if both happen). Buy "March cut" at 45c. If March cut happens, buy "June cut given March" at 75c.
If both resolve YES: Owe $1 on conjunction, receive $1 on March + $1 on June conditional. Net position depends on your hedge sizing and the conditional execution.
The complication: the conditional leg only becomes available after the first condition resolves, so you're carrying directional risk between legs.
Worked Example 2: Multi-Outcome Overpricing
A presidential primary market prices five candidates:
- Candidate A: 42c
- Candidate B: 28c
- Candidate C: 18c
- Candidate D: 11c
- Candidate E: 9c
- Total: 108c (8c overpriced)
The theoretical arbitrage is buying NO on all five candidates at (100c - price) each:
- NO A: 58c + NO B: 72c + NO C: 82c + NO D: 89c + NO E: 91c = 392c total cost
- Four of the five NO contracts pay $1 each (the loser pays $0) = $4.00 payout
- Gross profit: $4.00 - $3.92 = $0.08 per set
After Kalshi's ~7% fee structure applied to five separate transactions, total fees could reach $0.07-$0.10, consuming the entire theoretical edge. This is why multi-outcome arbitrage on a single platform almost never works at retail scale — the cumulative fee drag across multiple legs eliminates the overpricing.
Monitoring for Opportunities: APIs and Automated Scanning #
Platform API Access #
Both Kalshi and Polymarket offer public APIs that enable automated price monitoring:
Kalshi REST API (https://trading-api.kalshi.com/trade-api/v2/):
- Market data: GET
/marketsfor current order book prices, bid/ask depth, volume - Event data: GET
/eventsfor event metadata, resolution criteria, close dates - Rate limits: 10 requests/second for unauthenticated, higher for authenticated
- WebSocket feed available for streaming price updates
Polymarket CLOB API (https://clob.polymarket.com/):
- Order book: GET
/bookwith token ID for full depth ladder - Price snapshots: GET
/pricesfor current YES/NO token prices - Condition data: GET
/marketsfor event metadata and resolution sources - Built on Polygon blockchain — USDC settlement, near-instant finality
Building a Price Comparison System #
The minimum viable arbitrage monitor needs:
- Contract mapping table: Match Kalshi events to Polymarket conditions by event name, resolution date, and outcome labels. Fuzzy matching helps find candidates, but resolution criteria must be verified manually.
- Price ingestion loop: Poll both APIs at regular intervals (5-30 seconds). Store timestamped bid/ask/last for each contract. Track order book depth at each price level, not just top-of-book.
- Arbitrage signal computation: For each matched pair, compute:
- Cheapest YES across both platforms
- Cheapest NO across both platforms
- Sum of cheapest YES + cheapest NO
- If sum < $1.00, flag the discrepancy
- Subtract estimated fees from both legs
- Only signal if net edge > minimum threshold (typically 1.5-2%)
- Staleness filter: Only compare prices captured within a tight time window (under 5 seconds). Comparing a 30-second-old Kalshi quote against a fresh Polymarket quote is not a valid signal — the market may have moved.
Existing Scanning Tools #
Several open-source and commercial tools exist for cross-platform scanning:
- PredictMarketCap (predictmarketcap.com/arbitrage) — live cross-platform spread detection across Polymarket, Kalshi, and Limitless. Scans ~2,000 markets, showing profitable opportunities after fees with APY calculations.
- Open-source arbitrage bots (GitHub) — multiple TypeScript implementations exist that demonstrate the architecture: API polling, price comparison, simultaneous leg execution. These are useful as reference architectures but carry significant execution risk in production.
- Polymarket Scanner API — REST endpoint that detects exclusive outcome mispricings, ladder contradictions, and cross-market conflicts within Polymarket's 10,000+ markets.
Critical caveat: No scanner can verify resolution criteria equivalence. That step is always manual and always required. A scanner showing a 5c spread between "same" events is worthless if the events aren't actually the same.
Sizing Your Arbitrage Position #
Order Book Depth Limits #
The quoted price is not the executable price. If Kalshi shows YES at 62c, that might be for 50 contracts. To fill 1,000 contracts, you might need to walk the book:
- 50 contracts at 62c
- 200 contracts at 63c
- 300 contracts at 64c
- 450 contracts at 65c
Your volume-weighted average price: ~64c, not 62c. The apparent 10c arbitrage just shrank to 8c — and that's before the same depth problem on the Polymarket side.
Practical depth analysis: Before sizing, check the order book on both platforms for your intended quantity. The executable arbitrage is based on the VWAP (volume-weighted average price) for your fill size, not the best bid/ask. Most retail-accessible arbitrage opportunities support $1,000-$5,000 in deployable capital before depth exhaustion.
Maximum Deployable Capital Per Opportunity #
Your arbitrage capacity is constrained by the smaller of the two legs. If Kalshi has $3,000 in executable depth at attractive prices but Polymarket only has $800, your max deployable capital is $800 per side.
Capital allocation framework:
- Never deploy more than you can fill simultaneously on both legs
- Account for partial fill risk: if you fill 100% on Kalshi but only 60% on Polymarket, you have $400 in unhedged directional exposure
- Set a hard cap per event: even "risk-free" arbitrage carries settlement risk, so diversify across multiple events rather than concentrating
- Reserve capital for potential margin/collateral requirements and withdrawal delays
Position Sizing Rules #
- Maximum single-event exposure: Cap at 10-15% of total prediction market capital per event — the same principle behind portfolio heat management applies here, even when individual legs look risk-free. Even verified arbitrage can fail if resolution criteria are interpreted differently than expected.
- Minimum net edge threshold: Below 1.5% net (after all fees and estimated slippage), the trade isn't worth the execution risk, capital lockup, and operational complexity.
- Liquidity ratio check: If your intended order would consume more than 30% of visible depth on either platform, reduce size. Taking more than a third of displayed liquidity risks moving the market against your second leg and alerting competing arbitrageurs to the same opportunity.
- Time-to-resolution weighting: A 3% edge on a contract resolving in 7 days (annualized ~156%) is far more attractive than 3% on a 180-day lockup (annualized ~6%). Factor capital opportunity cost into your go/no-go decision.
Historical Arbitrage Window: 2024 US Election Night #
The 2024 US presidential election provided one of the most documented cross-platform arbitrage episodes in prediction market history.
What happened: On election night (November 5, 2024), Polymarket — which allowed global participation including large whale traders — called the race for Trump hours before Kalshi, which had a more US-retail-oriented user base. During a roughly 90-minute window between 9:30 PM and 11:00 PM EST, Polymarket priced Trump YES above 90c while Kalshi still had Trump YES in the 70-80c range.
The theoretical trade: Buy Trump YES on Kalshi at ~75c, buy Trump NO (Biden/Harris YES) on Polymarket at ~8c. Total cost: ~83c. Guaranteed payout: $1.00. Gross edge: ~17c.
Why it was difficult to capture in practice:
- Execution speed: The discrepancy narrowed rapidly as information propagated. By the time most retail participants noticed, Kalshi prices had already moved.
- Account funding: You needed pre-funded accounts on both platforms. Kalshi required KYC and ACH funding (days to set up). Polymarket required a funded crypto wallet on Polygon.
- Order book depth: At the peak discrepancy, Kalshi's order book was thin. Large market orders walked through multiple price levels.
- Settlement timing: Kalshi didn't settle until the AP called the race; Polymarket's market resolved based on different criteria and timing.
Lesson: The largest arbitrage windows occur during fast-moving news events, but they also close fastest. The infrastructure (funded accounts, API connections, automated execution) must be in place before the event, not during it. Traders who profited from election night arbitrage had spent weeks or months preparing their cross-platform setup.
For context on how rapidly the prediction market environment evolved around this period, see the NexusFi community discussion on Kalshi, Polymarket, and the prediction market ecosystem.
Practical Challenges of Prediction Market Arbitrage #
Challenge 1: Capital Locked on Two Platforms #
Cross-platform arbitrage requires capital on both Kalshi and Polymarket simultaneously. If you want to execute $10,000 of arbitrage:
- $6,200 locked on Kalshi (62c YES position)
- $2,800 locked on Polymarket (28c NO position)
- Total: $9,000 locked until resolution
- Opportunity cost: This $9,000 can't be deployed elsewhere
For a $700 gross profit (7c x 10,000 contracts), your ROI is $700/$9,000 = 7.8% over the life of the contract. For a 30-day contract, that's ~7.8% monthly, but the capital is fully locked. Is this better than your alternatives? It depends on your opportunity cost.
Challenge 2: Settlement Timing Difference #
Kalshi settles in USD via ACH/wire. Polymarket settles in USDC on the blockchain. Settlement timing differs:
- Kalshi: 2-5 business days after resolution
- Polymarket: Near-instant (blockchain confirmations)
Capital freed from one platform before the other creates a gap period.
Challenge 3: Minimum Position Sizes #
Most arbitrage on 10c discrepancies requires significant volume to generate meaningful dollar returns. 1,000 contracts at 10c gross = $100 gross before fees. After fees: ~$70. Is deploying $9,000 for $70 return worthwhile? Only if it's truly risk-free — and the criteria trap means it may not be.
Challenge 4: Liquidity Mismatch #
The discrepancy exists because one platform is less liquid. You may be able to buy 500 contracts at the attractive price before the spread widens, but not the 5,000 you calculated for your target return. Partial fills are common.
Challenge 5: Partial Fill and Leg Risk #
The most dangerous execution scenario in cross-platform arbitrage: one leg fills completely but the other doesn't. You buy 1,000 YES contracts on Kalshi at 62c but Polymarket's book moves before you fill the NO side. Now you're holding a directional position — exactly what arbitrage was supposed to avoid.
Unlike futures or equities where you can hedge instantly on the same exchange, cross-platform prediction market execution is never atomic. There is always a gap between your first and second fill — even if only milliseconds when automated, much longer when manual. Managing that gap is the difference between profitable arbitrage and losing money on "risk-free" trades.
Which Leg to Execute First #
The conventional advice — "execute both legs simultaneously" — ignores the reality that you always have one leg before the other. The sequencing decision matters.
| Scenario | Execute First | Why |
|---|---|---|
| One platform has noticeably less depth | The less liquid platform | Lock the harder-to-fill side while conditions are favorable — the deeper platform is more likely to still have size when you arrive |
| One platform is cheaper for your side | The cheaper platform | Lock the better entry price — if the second leg doesn't fill, your entry cost is lower on the exposed position |
| Latency differs between platforms | The slower platform | Gives the faster platform time to settle around any price impact from your first fill |
| Both platforms look similar | The platform with the tighter spread | Tighter spreads mean less slippage on the anchor leg |
The dominant rule across practitioners: execute the less liquid leg first. If you fill the easy side first and the hard side falls through, you're stuck with directional exposure. If you fill the hard side first and the easy side falls through, you can usually still hedge on the deeper platform at an acceptable price. This asymmetry makes the sequencing decision straightforward in most cases.
Handling Partial Fills: Three Response Modes #
When the first leg fills but the second doesn't match, you have three options. Each fits a specific situation:
Mode 1: Cancel and wait. Cancel all remaining orders, unwind the exposed position, and wait for the next window. Use this when your risk limits are tight and the spread has narrowed enough that continuing would lock in a loss. The downside: opportunity cost and extra fees from the unwind. But you end the sequence with zero exposure. Best for: very tight spreads where any slippage destroys the edge.
Mode 2: Accept directional exposure with a defined stop. Let the filled leg stand and place a time-limited hedge order on the other platform within a defined price band — your target price plus 1-2 cents. If the hedge fills within that band, your arbitrage works at a slightly reduced edge. If it doesn't fill within your timeout (30-60 seconds is typical), unwind the first leg at market. This works when the price discrepancy is wide enough that a slightly worse fill still generates positive edge. The key: define your maximum acceptable exposure duration and price band before you start — not after you're sitting on an open position wondering what to do.
Mode 3: Scale back the second leg to match (recommended for most traders). If you intended to fill 1,000 contracts but only got 600 on the first leg, immediately adjust your second leg to 600 contracts. This keeps the position perfectly hedged on the filled portion and eliminates excess directional exposure. The unfilled 400 contracts on the first leg get cancelled.
This is the approach most practitioners converge on because it handles the common case cleanly. You rarely get zero fills, but you frequently get partial fills. The key requirement: your second-leg order must be updated as first-leg fill reports come in. If you're doing this manually, set up both orders simultaneously and cancel the excess on whichever side fills short.
Practical workflow for partial fills:
- Set a fill threshold — 80% of your intended size is a reasonable default
- Monitor the first leg. When fills hit your threshold, snap the second leg's quantity to match the actual filled amount
- If fills fall below 80% after your timeout window (30-60 seconds): cancel the remainder, re-evaluate whether the spread still works, and either re-enter at adjusted size or abort
- If both legs fill but at different sizes, cancel the excess on the larger side to restore balance
- Keep a small cash buffer (roughly 0.5% of your total deployed notional) to cover any brief gap between fills where you're carrying unhedged exposure
Position Sizing Relative to Order Book Depth #
The order book display tells you the maximum you should trade — but most traders overshoot it. The depth you see at the best price is not the depth you can realistically take without moving the market against yourself.
The 30% depth rule: limit your order size to no more than 30% of the displayed depth across the best 2-3 price levels on either platform. This cap exists for two reasons. First, taking more than a third of visible liquidity signals your intent and can trigger other participants to pull their orders or front-run the second leg. Second, the remaining 70% acts as a buffer — if prices move slightly during your execution window, there's still liquidity to work with.
Worked example: Kalshi shows a 10-cent discrepancy on a mid-liquidity political contract. The order book has 800 contracts available across the best three price levels on the YES side. Your maximum order: 240 contracts (30% of 800). At 62c per contract, that's roughly $150 of capital on the Kalshi leg. If Polymarket shows 1,200 contracts of NO depth, your Polymarket cap is 360 contracts — but since Kalshi is the binding constraint, you cap at 240 contracts on both sides. Total capital deployed: about $220 (240 x 62c + 240 x 28c). Net profit at 7c after fees: roughly $17. Not exciting, but genuinely hedged.
For high-liquidity contracts — major elections, marquee macro events — visible depth may reach several thousand contracts across the top levels, supporting larger deployments in dollar terms. But the percentage rule still applies: 30% of whatever is visible, regardless of the absolute dollar amount.
Why not take more? Prediction market order books replenish slowly — minutes to hours, not milliseconds like equity or futures markets. Taking 50%+ of displayed depth can visibly move the price, alerting other arbitrageurs to the same opportunity and creating competition for your second leg before you even submit it. The 30% ceiling keeps your execution footprint small enough to avoid this self-defeating dynamic.
Challenge 6: Regulatory and Platform Risk #
Prediction markets operate in evolving regulatory territory. As @SMCJB noted in the NexusFi community, Kalshi faces class action lawsuits alleging unlicensed sports betting — raising the question of whether these platforms are CFTC-regulated event trading or state-regulated gambling. If a platform is forced to halt trading or restructure by regulators mid-contract, your locked capital and open positions face uncertainty that no amount of arbitrage math can hedge. The regulatory environment is still being written, and arbitrageurs who deploy capital across multiple platforms carry platform-specific regulatory risk on each leg.
When Arbitrage Is Actually Worth Pursuing #
Scenario 1: Large Discrepancy, Verified Equivalent Criteria #
Both contracts have been carefully verified to be truly equivalent. Price discrepancy exceeds 10c. After all fees, positive net profit is clear. Capital deployment fits within your overall risk limits.
This is rare but does occur after major events when one platform's market makers update pricing faster than the other.
Scenario 2: Internal Inconsistency With Clear Direction #
Within a single platform, two related contracts are clearly inconsistent, and one must be wrong. You can identify which one the market is likely to correct toward, and trade that direction even without perfectly locking in a two-sided position.
This isn't true arbitrage — it's a high-confidence directional trade based on internal market consistency.
Scenario 3: Platform Market Making #
Some sophisticated participants effectively act as market makers, posting prices on both sides and capturing the spread rather than finding external arbitrage. This requires deep technical infrastructure and isn't accessible to most retail participants.
The Arbitrage Discovery Process #
If you want to systematically scan for arbitrage opportunities (see the pm.wiki arbitrage methodology guide for a detailed walkthrough of this process):
- Build a contract comparison spreadsheet: List all active contracts on Kalshi and their Polymarket equivalents. Update prices daily or more frequently.
- Verify criteria equivalence: For any price discrepancy > 5c, read both platforms' resolution criteria word-for-word.
- Calculate net profit after fees: Use the specific fee formulas for each platform. A 7c gross arbitrage may yield only 3-4c net.
- Estimate maximum deployable size: Check order book depth on both platforms. How many contracts can you actually transact at the displayed price?
- Execute simultaneously where possible: Cross-platform execution creates a window between legs. If the market moves between your first and second fill, the arbitrage may no longer exist.
Common Mistakes in Prediction Market Arbitrage #
Mistake 1: Assuming Criteria Equivalence #
The title sounds the same. The criteria are different. You're not arbitraging; you're taking two separate directional risks that happen to be opposite.
Mistake 2: Ignoring Opportunity Cost #
Locked capital has an opportunity cost. A 5% return on a 90-day lock-up is 5% annualized, which may not beat simpler strategies.
Mistake 3: Partial Fill Risk #
You execute one leg fully but get only partially filled on the second. Now you have directional exposure you didn't intend. Three specific response modes exist: cancel and unwind the exposed leg immediately, accept defined directional exposure with a time-limited hedge order in a bounded price band, or scale back the second leg to match the actual filled quantity (the recommended default). See Which Leg to Execute First and Handling Partial Fills: Three Response Modes in the Practical Challenges section above for the complete decision framework, including when to use each mode and the 80% fill threshold rule.
Mistake 4: Forgetting Bid-Ask Spread Direction #
You can buy at the ask or sell at the bid — and the difference matters more than most arbitrageurs expect (see The Bid-Ask Spread for the mechanics that make this gap persistent). The arbitrage calculation must use the direction of each transaction, not the mid-price.
Mistake 5: Overestimating Available Depth #
A scanner shows 5c of edge on a contract, but only 50 contracts sit at that price. Your $10,000 deployment plan requires 1,000 contracts. By the time you walk the book, your effective edge is 2c — below the fee threshold. The practical cap: limit your order to no more than 30% of the displayed depth across the top 2-3 price levels on either platform. At 800 contracts of visible depth, that means 240 contracts maximum — which on a typical 10-cent discrepancy translates to roughly $150 deployable per side on the Kalshi leg. See the 30% Depth Rule in Sizing Your Arbitrage Position above for the full worked example and rationale.
Citations #
- @bobwest: Event Contracts - New Way to trade the CME Futures markets — Community analysis of binary event contract structure, payout risk, and legitimacy
- @SMCJB: Kalshi Faces Class Action Over Alleged Unlicensed Sports Betting — Regulatory risk dimension of prediction market platforms
- @Fi: Tradeweb Takes Minority Stake in Kalshi — Institutional participation and arbitrage efficiency in prediction markets
- @Fi: CME Group Event Contracts Blast Past 100 Million Traded — Cross-platform competitive dynamics creating arbitrage opportunities
- @Fi: CFTC Withdraws Prediction Market Ban — Regulatory framework enabling cross-platform participation
- Kalshi, Polymarket, Prediction Markets etc — Community discussion of platform differences and arbitrage potential
- Wolfers, J. & Zitzewitz, E. (2004). "Prediction Markets." Journal of Economic Perspectives, 18(2), 107-126 — Foundational academic work on prediction market efficiency and information aggregation
- Gebele, J. & Matthes, F. (2026). "Semantic Non-Fungibility and Violations of the Law of One Price in Prediction Markets." arXiv:2601.01706 — Cross-platform event identity analysis documenting persistent 2-4% price deviations across 100k+ events
- Polymarket CLOB Documentation — Order matching mechanics relevant to arbitrage execution
- PredictMarketCap Arbitrage Scanner — Live cross-platform spread detection tool
- pm.wiki: How to Arbitrage Between Polymarket and Kalshi — Cross-platform arbitrage methodology and fee analysis
- @Laconic: Event Contracts - New Way to trade the CME Futures markets — Community analysis of YES+NO zero-sum arithmetic and embedded market maker vig in event contracts
- Polytrage: Why the Same Market Trades at Different Prices on Polymarket and Kalshi — Structural analysis of persistent cross-platform price divergences and why arbitrage capital is the only mechanism that closes them
Knowledge Map
Go Deeper
Build on this knowledgeReferences This Article
Articles that build on this topicCitations
- — Tradeweb Takes Minority Stake in Kalshi (2025)“Institutional participation and arbitrage efficiency in prediction markets”
- — CME Group Event Contracts Blast Past 100 Million Traded (2025)“Cross-platform competitive dynamics creating arbitrage opportunities”
- — CFTC Withdraws Prediction Market Ban (2025)“Regulatory framework enabling cross-platform participation”
- — Kalshi, Polymarket, Prediction Markets etc (2025) 👍 4“Critical perspective on prediction market regulatory risks and class action litigation”
- — The mysterious but colossal world of arbitrage (2022) 👍 4“How arbitrage keeps correlated markets in sync through price discrepancy exploitation”
- — Event Contracts - New Way to trade the CME Futures markets (2022) 👍 1“Zero-sum arithmetic of YES+NO pricing and embedded market maker vig in event contracts”
- — Wolfers & Zitzewitz (2004), Prediction Markets, Journal of Economic Perspectives
- — Gebele & Matthes (2026), Semantic Non-Fungibility and Violations of the Law of One Price in Prediction Markets, arXiv:2601.01706
- — Polymarket CLOB Documentation
- — Polytrage: Why the Same Market Trades at Different Prices on Polymarket and Kalshi
- — pm.wiki: How to Arbitrage Between Polymarket and Kalshi
