Methodology

Why arb scanner numbers are wrong in 2026

Kalshi-Polymarket arb scanners disagree because they measure different things: raw mids, executable books, round-trip taker fees, close times, and rule forks. Kalshi charges takers 0.07 x P x (1 - P); Polymarket charges category rates from 0.00 to 0.07. TapeXray’s board ranks every match at that 0.07 maximum, then re-prices gated pairs at their real rate.

By The TapeXray deskLast verified 8 min read

What this page found

  • The live board rejected 100 suspect pairs before ranking gaps, because bad matches create cleaner-looking arbs than real markets do.
  • Only 2 gated pairs were positive after fees, while 4 pairs sat inside the fee line on the 2026-09-21 17:30 UTC board.
  • Kalshi’s published taker fee is 0.07 x P x (1 - P) per contract per side, with maker fee listed as 0.0.
  • Polymarket’s published taker rates run from 0.0 on geopolitics to 0.07 on crypto, with maker fee listed as 0.0.
  • TapeXray’s live gap math ranks every match at a conservative 0.07 Polymarket maximum, then re-prices gated pairs at their real category rate, so the board is a screen, not a final execution model.
100suspect pairs rejectedTapeXray live board, 2026-09-21 17:30 UTC
4pairs inside the fee lineTapeXray live board, 2026-09-21 17:30 UTC
2pairs positive after feesTapeXray live board, 2026-09-21 17:30 UTC
0.07Kalshi taker fee rate in formulaKalshi fee schedule, verified 2026-09-22
0.00-0.07Polymarket published category-rate rangePolymarket fee docs, verified 2026-09-22

Why do arb scanners disagree?

Most Kalshi-Polymarket scanner disagreements start with the same mistake: treating a displayed price gap as an executable edge. A raw 81.0c versus 73.5c midpoint gap is not the same thing as a filled trade. The trader does not get the midpoint by right. The trader crosses the spread, pays taker fees if lifting offers or hitting bids, and then carries rule, timing, and resolution risk.

TapeXray’s live board is built to be quotable, not flattering. It gates candidate matches, rejects suspect pairs, subtracts a fee line, and separates ordinary midpoint gaps from locked forks that can be priced off the book. The result is usually smaller than the number a raw scanner prints. Some days the answer is that most days there is nothing here.

What does TapeXray subtract before calling a real gap?

The midpoint gap is only the first cut. TapeXray’s board uses fee_adjusted_cents = |mid_k - mid_p| - 200 x (0.07 x Pk x (1 - Pk) + rp x Pp x (1 - Pp)). Pk and Pp are the Kalshi and Polymarket mids in dollars, and rp is the Polymarket rate - 0.07 while ranking and gating the whole match set, then each gated pair’s own published category rate once the gate has narrowed roughly 10,900 matches to a few dozen. The 200 multiplier is there because that screen treats the comparison as a round trip, entry plus exit, on both venues.

That two-pass design is intentionally conservative for a scanner, but it is not the same as a fill ticket. A locked fork is priced differently. For fork_net_cents, the board prices both legs off the book: YES ask on the cheap venue and NO = 100 - YES bid on the other venue. It then subtracts one-way taker fees per leg, because a fork held to resolution has no exit leg.

What the board removes before a gap is promoted
ItemBoard treatmentWhy it matters
Midpoint difference|mid_k - mid_p|Shows the visible gap before costs
Round-trip fee line200 x (0.07 x Pk x (1 - Pk) + rp x Pp x (1 - Pp)); rp is 0.07 ranking, the real rate once gatedRemoves estimated taker costs on entry and exit
Fork pricingYES ask plus NO from 100 - YES bidUses executable book sides instead of mids
Fork feesOne-way taker fees per legA held fork settles; it does not need an exit leg
Source: TapeXray board fee note, 2026-09-21 17:30 UTC

How do Kalshi and Polymarket fee schedules differ?

Kalshi and Polymarket do not publish the same taker-fee schedule. Kalshi’s verified formula is fee = ceil(0.07 x C x P x (1 - P)) cents, where C is contracts and P is the price in dollars. The maker fee is listed as 0.0. The fee is charged to takers on both entry and exit.

Polymarket’s verified formula is fee = C x rate x P x (1 - P), with the rate set by market category. Its maker fee is also listed as 0.0. That category step is why a single flat Polymarket estimate can be useful for a screen but wrong for a specific bet.

The P x (1 - P) shape matters. Kalshi’s note says the fee peaks at 50c, where 0.07 x 0.5 x 0.5 = 1.75c per contract per side, and falls toward zero at either extreme. Polymarket uses the same shape, but the category rate changes the cents paid.

Published taker-fee schedules used for execution checks
VenuePublished taker feeMaker feeVerified
Kalshiceil(0.07 x C x P x (1 - P)) cents0.02026-09-22
PolymarketC x category rate x P x (1 - P)0.02026-09-22
Source: Kalshi fee schedule and Polymarket trading fee docs, verified 2026-09-22
Polymarket published taker rates by category
CategoryRate
crypto0.07
culture0.05
economics0.05
finance0.04
geopolitics0.0
mentions0.04
other0.05
politics0.04
sports0.05
tech0.04
weather0.05
Source: Polymarket trading fee docs, verified 2026-09-22

What still makes the TapeXray number wrong?

The TapeXray number is still an estimate. It can be a better estimate than a raw midpoint screen and still be wrong for a trader’s actual fills. The board cannot guarantee the displayed size is available when the order arrives. It cannot guarantee the other venue still shows the matching leg. It cannot make two rulebooks identical.

  • Stale quotes: a price can update on one venue before the other, making a short-lived gap look cleaner than it is.
  • Spread crossing: midpoint math does not show the bid and ask a trader must actually hit.
  • Close-time mismatches: two markets can describe the same event but stop trading on different clocks.
  • Rule forks: wording can diverge enough that both legs are not true economic opposites.
  • Fee schedule mismatch: only a gated pair is re-priced at its real Polymarket category rate. A rejected suspect pair is never checked against its true rate and keeps the conservative 7% maximum.

This is why the Kalshi vs Polymarket fee guide belongs next to the board, not behind it. A board number can identify a candidate. It does not replace line shopping, reading the contract terms, checking the last trade, and modeling the exact taker fee for the category.

What did the latest board actually show?

The 2026-09-21 17:30 UTC board tracked 236,027 markets across two venues. It listed 94,209 active Kalshi markets and 138,833 active Polymarket markets in the catalog. That large catalog does not mean there are many clean cross-venue bets. After the gate, the board showed 6 gated pairs, 4 inside the fee line, and 2 positive after fees.

The top displayed gap was a politics market: “Will Elif Eralp win the election for Governing Mayor of Berlin by the Berlin House of Representatives following their state election?” The Kalshi midpoint was 81.0c, the Polymarket midpoint was 73.5c, and the fee-adjusted gap was 3.8c once that market’s own 0.04 politics rate replaced the 0.07 ranking maximum. The second displayed gap was an other-category chess market at 60.0c on Kalshi, 51.5c on Polymarket, and 2.6c after the board’s fee adjustment at its 0.05 sports rate.

Those are board numbers, not a promise that a trader can lock the same return. The next check is the market page, the order book, the fee category, and the rules. TapeXray’s market archive preserves the tape; the methodology notes explain how to cite it without overstating it.

Top fee-adjusted board gaps
MarketCategoryKalshi midPolymarket midPolymarket rateFee-adjusted gap
Will Elif Eralp win the election for Governing Mayor of Berlin by the Berlin House of Representatives following their state election?Politics81.0c73.5c0.043.8c
Will Uzbekistan win the 46th FIDE Chess Olympiad Open Tournament?Other60.0c51.5c0.052.6c
Source: TapeXray live board, 2026-09-21 17:30 UTC quotes, re-priced 2026-09-23

Questions people ask

Why does one scanner show a bigger Kalshi-Polymarket arb than another?

Usually because the scanners are not measuring the same thing. One may use raw midpoints. Another may cross the spread. TapeXray subtracts a round-trip fee line using 0.07 for Kalshi and, for each gated pair, that market’s own Polymarket category rate, then rejects suspect pairs before ranking gaps.

Is TapeXray’s gap number executable?

No. It is a board estimate, not a fill guarantee. It can be useful for finding candidates, but the actual trade depends on live bids and asks, available size, category fees, timing, and whether the Kalshi and Polymarket rulebooks are true opposites.

Why does TapeXray rank matches at a 7% Polymarket maximum first?

Reading every one of roughly 10,900 matched pairs’ published category rate up front would overrun the board’s memory budget, so the whole match set is ranked and gated at 7%, the highest published rate. Only the pairs that pass the same-bet gate are then re-priced at their own category rate, 0.0 to 0.07, so a gated pair’s number can only rise on re-pricing, never fall.

Do fees really erase most displayed gaps?

Often, yes. On the 2026-09-21 17:30 UTC board, 4 pairs were inside the fee line and 2 were positive after fees. A visible midpoint difference is common. A clean, fee-adjusted, executable cross-venue position is less common.

Where should a trader check next after seeing a gap?

Check the live order books, contract rules, close times, fee category, and available size before treating any board gap as tradable. The board is the first filter. It is not a substitute for line shopping or reading both venue rulebooks.

Sources

Independent archive. No referral links in editorial copy, no paid placements, and nothing here is legal, tax or financial advice. Found an error? Tell us and we will date the correction.

Related reading

See today's board

Every pair on this page is scored live against the same fee line, refreshed with each deploy. No referral links, no rankings we were paid for.

Open the board

Free channel: gaps at the next rebuild. Members: the instant one matching your watches, in your DM.

Polymarket moved 8¢ on US recession in 2026? in the last 60 minutes (12¢ → 20¢). Kalshi hasn't caught up — still sitting at 14¢.Get alerts (opens in a new tab)
Members get every gap, fork and lag as the scan finds it, 35–55 minutes after the hour.
Why the board stays free
Real-time scanning costs us per scan. The 6-hour board stays free forever.

All guides

Gaps close in hours.

The free channel posts at the next rebuild; members' DMs arrive as the scan finds it.