Overround Scanner
One venue, every outcome — where the legs price above or below 100%.
The tool runs at /overround and needs a $49.99/mo membership. There is no free tier and no trial, so opening it signed out lands on the pricing page rather than the board. This page is the open documentation of what it does.
In a mutually exclusive one-winner event, exactly one outcome settles at a dollar. That makes two full-set trades arithmetically well defined: buying one YES of every outcome pays exactly one dollar, and buying one NO of every outcome pays the number of outcomes minus one. Whenever the set costs less than its guaranteed payout with fees included, the difference is locked whichever outcome wins.
This scanner reads both venues' multi-outcome events, prices every leg off executable asks, and shows where the book is running loose. A second board on the same page does the same job for implication pairs.
Which direction is provably a lock, per venue
Polymarket's negative-risk events guarantee that exactly one leg resolves yes, so both the all-YES and all-NO sets are true locks and the scanner picks whichever direction nets more.
Kalshi's mutually-exclusive flag promises only that at most one leg resolves yes — the listed outcomes need not be exhaustive. All-NO still pays at least the outcome count minus one and remains a lock, but all-YES could pay nothing at all, so Kalshi rows are never shown in that direction. That asymmetry is not a detail; it is the difference between a lock and an unhedged position.
Pricing, fees and the split
Every leg uses the ask of the exact contract being bought. On Polymarket the YES ask is the book's best ask and the executable NO ask is one minus the best bid, because buying NO crosses the same book as selling YES. On Kalshi both asks are served directly. Fees ride on every leg — Kalshi's per-contract formula, Polymarket's gas-and-slippage allowance — which is why a many-legged event can turn a fat gross gap into nothing net.
Set a budget and the Split column turns a row into whole contracts per leg: the same count on every leg, sized by budget divided by the all-in cost per unit, with the guaranteed payout and the locked profit shown beside it. A thin-leg warning appears when a leg's stake exceeds that leg's own posted depth, and legs whose venue reports no depth are marked unchecked rather than assumed fine.
Logic locks: when a ladder prices out of order
The second board trades implications. When event A logically implies event B — Bitcoin above sixty-five thousand two hundred and fifty implies Bitcoin above sixty-five thousand on the same expiry — buying YES on B and NO on A pays at least a dollar in every reachable state, because the only losing combination is the one the implication rules out.
Pairs are curated for exactly the reason the arbitrage scanner curates its own: a wrong implication silently reopens the losing state. Kalshi pairs are same-event, same-expiry strikes of one series, where the implication is arithmetic; the Polymarket side is two hand-verified date-ladder families. Where a ladder's last trades print out of order — a stricter strike quoted above a looser one — that inversion is surfaced separately as a signal and never sized, because last trades are not executable.
Why negative-edge rows are still listed
Positive locks sort first, but near-misses and negative rows stay on the board. That is deliberate: seeing that every event on a venue is running two per cent tight tells you something real about that book, and a board that only ever shows wins looks broken during the many hours when nothing is loose.
The board also tracks each venue's fetch health separately, so an empty result can say honestly whether it means no locks or an outage.
What it cannot tell you
Every tool has a boundary, and knowing where it sits is the difference between using one well and being misled by it. For Overround Scanner:
- A lock is only real once every leg fills. Legs reprice as you cross the earlier spreads, and a partly filled set is an unhedged position.
- Fees stack per leg. An event with many outcomes can be gross-positive and net-negative, which is why only the net figure is ranked.
- The lock is only as deep as its thinnest leg, and legs whose venue reports no depth go unchecked.
- New outcomes can be added to an open event, changing the outcome count after you have filled — which changes the all-NO payout.
- Legs can settle at different times, so a logic lock's guarantee is at least a dollar in total settled dollars, not necessarily on the same day.
- Kalshi events are shown all-NO only. If you were expecting an all-YES row on Kalshi, its absence is the correctness, not a gap.
What it is built on
- Polymarket gamma negative-risk events with their nested legs, including per-leg best bid and ask.
- Kalshi trade-api v2 nested events with their mutually-exclusive flag and per-leg yes and no asks.
- Polymarket CLOB and Kalshi order books for per-leg posted depth.
- The shared fee maths in lib/staking.ts, and the curated implication pairs in lib/logiclocks.ts.
Related reading
- How to Split Stakes on Both Sides of a Prediction Market Arb (Polymarket vs Kalshi) — Guide
- Prediction Market Arbitrage: Trading Price Divergence Between Polymarket and Kalshi — Guide
- Prediction Market Arbitrage: Polymarket vs Kalshi — Strategy
Tools that pair with it
The same event priced differently on Polymarket and Kalshi.
One market, every signal we hold on it, on one screen.
Fee-aware position sizing, hedges, and a drawdown simulation.
WhaleTracks is informational analytics, not financial advice. Market data comes from Polymarket, Kalshi and Manifold's public APIs; WhaleTracks is not affiliated with any of them. Past performance does not guarantee future results.