Cross-Platform Arbitrage — FAQ

Plain-language answers to the questions this research project set out to answer, using the "Fed Maintains Rate" / "No Change" January 2026 contract (Kalshi vs. Polymarket) as the running example throughout. Full detail and methodology live in the three source notebooks linked above — this page is the summary.

1. What is arbitrage in prediction markets?
  • Kalshi and Polymarket both list a contract for the same real-world question — e.g. "Will the Fed maintain rates in January 2026?"
  • If the two platforms price it differently enough, you can buy the opposite outcome on each platform for a combined cost under $1.00.
  • Since exactly one side must resolve to $1.00, the payout is guaranteed regardless of the actual outcome — the profit is locked in at entry, not dependent on being right about the Fed.

Real example, Nov 19, 2025, 17:45 UTC:

  • Kalshi: bought No at $0.47
  • Polymarket: bought Yes at $0.48
  • Combined cost: $0.95 → guaranteed $0.05/contract edge, 76 contracts, before fees
2. Do arbitrages actually exist in these markets?
  • Yes. Using a $0.05 gross-spread threshold sustained 5+ minutes, this single contract had 80 distinct qualifying episodes across its ~2.5-month life.
  • Activity is not steady — it clusters hard around specific weeks (late Nov, one week alone had 27 events).
Weekly count of distinct arbitrage episodes
3. Have others used this strategy?
  • Yes — one wallet's behavior looks like an automated arbitrage bot already running this exact strategy.
  • Wallet 0xde0463... ("mwenya" / "Honest-Similarity"): 47 trades in a single week, 100% buys, split across both outcome sides on both platforms, executed within 3–5 seconds of each other.
MetricValue
Trades in Nov 19–25 window47
Statistically-matched size/timing pairs12 of 19 found
Real hedge trades (opposite sides, locked profit)10
Capital deployed (10 hedges)$389.10
Gross profit (10 hedges)$15.90
4. When arbitrage happens, is there enough volume to take the bet?
  • Often, no. 84.4% of qualifying episodes (54 of 64 checked) had zero realized trades on at least one leg — almost always Kalshi — during the entire window the gap was open.
  • That doesn't prove a trade couldn't have filled: a live two-sided quote existed for at least part of the window in every one of those 54 episodes, and for the whole window in about a third of them.
  • What's still unknown: the actual size available behind those quotes — neither platform's historical API retains order size, only price.
Contracts actually tradeable per qualifying episode
Live quote coverage during zero-fill episodes
5. Once an arbitrage opens, how long until the gap actually closes?

This is about exiting early — how long capital would need to stay locked up if closing both legs as soon as the mispricing itself corrects, rather than holding to event resolution.

  • Median time to converge (gap returns to ≤$0.01): 20.6 hours
  • Mean: 66.3 hours — pulled up hard by a long tail (up to ~11 days)
  • 51% of episodes converge within 24 hours; 82% within a week
  • Every qualifying episode in the full contract history eventually converged — none were ever "stuck" open until resolution
Distribution of time to converge
6. What does it cost to actually do these trades?
  • Kalshi's fee is confirmed and stable: 7% × price × (1−price) per contract, taker only — makers are free.
  • Polymarket's fee is not a flat platform rate — it's per-market, toggled on/off, and the exact formula is genuinely disputed between Polymarket's own docs and its on-chain contract code.
  • The market actually studied here had fees switched off entirely — not something to assume will hold elsewhere.

Same 10 hedge trades, three fee scenarios:

ScenarioNet ProfitROI
Actual (this market, fees off)$9.012.3%
Old flat-2% placeholder$5.811.5%
Live docs-formula rate (10%)−$0.51−0.1%

Fees alone are the difference between this being profitable and not.

7. How long does a qualifying gap stay open before the opportunity disappears?

This is about entering in time — how much of a window exists to actually execute before the gap itself closes back below the qualifying threshold (a different question from #5's exit timing).

Outcome BucketAvg. DurationLongest Single Episode
No Change65.9 min3,426 min (~57 hrs)
25bps Decrease100.5 min1,939 min (~32 hrs)
50+bps Decrease136.0 min2,830 min (~47 hrs)

Most windows stay open over an hour on average — not a race against seconds — but the spread between "typical" and "longest" is wide enough that slippage risk shouldn't be assumed away.

8. Which specific outcome buckets should arbitrage strategies focus on?

All of them showed real, tradeable divergence — November baseline, by bucket:

 No Change25bps Decrease50+bps Decrease25bps+ Increase
Average Price Divergence / Event$0.0577$0.0644$0.0542N/A
Median Price Divergence / Event$0.0550$0.0575$0.0530N/A
Avg. Length of Divergence65.9 min100.5 min136.0 minN/A
Largest Daily Divergence$0.0989$0.1145$0.0646N/A
Avg. Volume / Divergent Event320N/A

The fourth bucket ("25bps+ Increase") is flagged N/A — it was an imperfect Kalshi/Polymarket match and excluded rather than reported unreliably. The 50+bps Decrease bucket shows the widest average gap but essentially zero average volume — wide spreads and tradeable liquidity don't necessarily show up together.

9. Does news moving these markets matter for timing a trade?
  • Scheduled Fed releases (2pm ET, always): Oct minutes caused an 8-cent whipsaw — up, then reversed within 20 minutes. Net roughly flat.
  • Scheduled but non-Fed data (a delayed jobs report): essentially no reaction at all — largest move all day was 3–7 cents.
  • Unscheduled remarks (a NY Fed President's speech, no public calendar entry): the single biggest move of the three — 24.5 cents in under 20 minutes.

Being on the Fed's own calendar doesn't guarantee a big move, and being scheduled at all doesn't either. The largest reaction came from an unscheduled remark about a different meeting entirely.

Price action around three news events
10. Is arbitrage frequency related to volatility?
  • Yes, and more strongly than volume was: daily arbitrage-qualifying minutes correlate with total daily price movement at r = 0.63 (Kalshi) and r = 0.78 (Polymarket).
  • That's clearly stronger than the r = 0.33 / r = 0.24 already found between arbitrage activity and trading volume.
  • A simpler per-tick volatility measure was weaker (r = 0.35 / r = 0.47) — it's specifically cumulative daily movement, not how jumpy any one tick is, that tracks with arbitrage opportunity.
Arbitrage minutes vs daily price movement
Caveat: single contract, single month — a real correlation, not a demonstrated causal link.
11. What are the risks, and how can they be mitigated?
  • Fees can flip the trade negative. The same 10 trades go from +$9.01 to −$0.51 depending on the fee assumption used (see #6). Mitigation: confirm the live fee rate for the specific market before sizing a trade, not after.
  • Execution/leg risk — one side fills, the other doesn't. If only one leg executes, the "arbitrage" becomes a plain directional bet with real downside. Mitigation: size conservatively against the liquidity actually checked (#4), not the price shown.
  • Slippage from a closing window. Qualifying gaps can close in minutes (#7). Mitigation: act promptly once a qualifying gap is confirmed rather than waiting to see if it widens further.
  • Capital lockup. A hedge, once entered, may sit for hours to over a week before it can be closed early (#5). Mitigation: size positions with that holding period in mind, not assuming instant recycling.
  • Platform/counterparty risk. This entire strategy depends on both Kalshi and Polymarket actually settling correctly and on time — a risk outside any of the data analyzed here.
12. Could this realistically be automated?
  • Yes — and it looks like it already has been, more than once.
  • Wallet 0xde0463...: near-simultaneous fills across both platforms (3–5 seconds apart), consistent hedged sizing, 47 trades in a week — a clear automated signature.
  • Wallet "Awkward-Stepaunt": placed the exact same size, 1,041.80 contracts, as five separate buys across five different days — a distinctive, clearly scripted (not manual) pattern, independent of the first wallet.

Multiple independent automated actors already active is itself evidence this is a known, executable strategy — not just a theoretical one.

Worth noting who these actors aren't: large-scale automated trading firms have little reason to bother. A typical entry gap here is just $0.05, and pushing meaningful volume through it collapses the very gap being traded — arbitrage at this scale is self-limiting, so it isn't worth building infrastructure around for a firm that can deploy capital more profitably elsewhere. The wallets above look like individual traders running this manually or with a simple script, not institutional players.

13. How much ROI can we expect from each event?

ROI varies meaningfully by event type, driven mostly by how large and how often each event's price gaps open — not luck. Real backtested Overall ROI (vs. starting bankroll), January–May 2026, using the strongest tested strategy variant for each event type:

These are total returns over each backtest's multi-month window, not a daily or annualized rate — turning this into a daily figure would need a capital-recycling/compounding model this project hasn't built. Full trade-count, win-rate, fees, and PNL detail for each event lives in the Opportunity section of the Thesis page.