Polymarket and Kalshi arbitrage: the gap, and what survives the fees
Two exchanges can quote the same question at different prices. Most of the time the difference is smaller than the cost of taking it. This page publishes the contracts Vultax matches across Polymarket and Kalshi, the raw difference in percentage points, and what is left once each venue's own fee schedule is applied — so you can see which gaps are worth a second look and which are arithmetic that has already been spent.
The Polymarket–Kalshi gap, before and after fees
Matched Fed contracts on both venues, with the raw gap and the after-fee figure side by side. Free to read, no account.
Observed · Observed
| Meeting | Contract | PM − Kalshi | After venue fees | Polymarket 24h volume | Kalshi 24h volume | Kalshi open interest |
|---|---|---|---|---|---|---|
| September | 25 bp increase | 1 | 0 | 1,551,763 | 1,899,525 | 32,627,113 |
| September | No change | -2 | 0 | 2,205,884 | 1,899,525 | 32,627,113 |
| September | 25 bp decrease | -0.20 | 0 | 1,975,108 | 1,899,525 | 32,627,113 |
| October | 25 bp increase | 0 | 0 | 30,115.00 | 6,320.54 | 402,063.13 |
| October | No change | 1 | 0 | 6,046.00 | 6,320.54 | 402,063.13 |
| October | 25 bp decrease | -0.50 | 0 | 18,346.00 | 6,320.54 | 402,063.13 |
| December | 25 bp increase | -0.50 | 0 | 6,808.00 | 3,558.58 | 103,854.60 |
| December | No change | -3 | 1 | 4,334.00 | 3,558.58 | 103,854.60 |
What you can do with it
Read the after-fee column first
The raw gap is the number every screenshot on the internet shows. The column next to it is the one that decides anything. A two-point difference between two venues is not two points of edge; it is two points minus a taker fee on each leg, minus whatever the book moves while you are filling the second one.
Check the size behind the quote
Each row carries the 24-hour volume and open interest each venue reports for that meeting. A gap on a contract with a few thousand dollars of turnover is a quote, not an opportunity: there is nothing behind it to trade against, and a single order removes it.
Follow the watch-only signal in the app
The prediction desk surfaces cross-venue deviance as a signal row labelled Watch only, with the reason stated on the row: deviance expands only through reviewed registry mappings and stays watch-only. It points you at the pair. It does not tell you to trade it.
Take the table with you
Every table on this page exports as JSON and CSV with its own observation time, coverage note and source. If you are building your own comparison, start from the same rows rather than re-scraping two venues at different moments.
How it works
Matching two contracts is the hard part, not comparing two prices
A cross-venue comparison is only meaningful when both venues are asking the same question and settling on the same evidence. Two markets can carry near-identical titles and still resolve differently: a different source of record, a different cut-off time, a different treatment of an outcome that half-happens. Comparing their prices produces a number that looks like an edge and is really a difference of definition.
Vultax works from a reviewed match registry rather than from title similarity. Each pair carries a grade — an exact reviewed match, a related but not equivalent pair, or a pair excluded by review — together with the resolution source, a note on the resolution rule, and whether the two close times are compatible. Only reviewed pairs reach the comparison, and the review date travels with them.
Then the fees, from each venue's own schedule
The two venues charge differently, and neither charges a flat percentage of notional the way a spot exchange does. Vultax models each side from the venue's published schedule — Kalshi's fee schedule for the Kalshi leg, Polymarket's own terms for the other — and applies a slippage allowance and an operational allowance on top before anything is called an edge at all.
The comparison table on this page shows the assumption it used in the note beneath it. Your own fees will differ: they depend on your account, whether you are taking or making, and what the venue's schedule says on the day. The point of publishing the assumption is that you can substitute your own and see what happens to the number.
What Vultax will not tell you
There is no execution here. Vultax does not route orders, hold funds, or connect to a venue on your behalf, and the cross-venue posture in the product is watch-only by construction: the calculation carries an explicit flag saying it is not a recommendation, and no plan changes that.
The parts that decide whether a remaining gap is real are also the parts Vultax cannot see: how much depth sits behind the quote at the moment you act, whether you hold cleared funds on both venues, how long a transfer takes, and whether both contracts are available to you at all. Kalshi is a US-regulated exchange with its own eligibility rules. Treat a surviving gap as a question to investigate, and expect most of them to fail on one of those four.
Working through one row
Take a row where one venue quotes an outcome at 39 and the other at 43. The headline is four points, and four points on a contract that settles at 100 sounds like a large number. Now subtract what it costs to be on both sides: a taker fee at each venue, charged per contract rather than as a slice of notional, plus the fact that you are lifting an offer rather than resting a bid. The after-fee column does that subtraction and usually returns nothing.
The second subtraction is the one no table can do for you. To capture the remainder you have to buy the cheaper side and sell — or buy the opposing outcome on — the dearer one, in the same size, before either quote moves. That means cleared funds sitting on both venues in advance, because a transfer between them is measured in hours and the quote is measured in seconds. Money parked on two exchanges to catch a fractional edge has a cost of its own, and it is rarely counted.
What is left after both subtractions is the real number, and on the contracts Vultax tracks it is usually zero or negative. That is not a defect in the market; it is what a functioning market looks like. The value of the table is that it shows you which of the visible gaps are the exception rather than making you work it out four times a day.
- Raw gap: what the two screens say.
- After venue fees: what the table computes, using the assumption printed under it.
- After your fees: substitute your own schedule; the export exists for this.
- After capital and timing: yours to judge, and usually where the remainder goes.
Why the gaps do not simply close
If a difference persists it is usually structural rather than an oversight. The two venues have different participants: one is reachable with a card and a US address, the other with a crypto wallet from most of the world, and there is no single pool of arbitrageurs able to trade both at scale. Capital that could close the gap is often not permitted to be on both sides.
Contract wording is the second reason. A pair that looks identical can settle on a different source, at a different hour, with a different treatment of an ambiguous outcome. Where that is true, the price difference is a correct assessment of two different bets and closing it would be the mistake. Vultax's reviewed match registry exists precisely so that this class of difference is filtered out before you see it, and pairs that fail review are excluded rather than shown with a caveat.
The third is time. A contract months from resolution ties up capital for months; the annualised return on a two-point edge held for ninety days is not what a two-point number suggests. The rate-path rows on the Kalshi page make this visible: the far meetings are where the widest gaps and the thinnest books both live.
What each plan gives you here
The comparison on this page is public and needs no account. A plan changes what you can do around it in the app, not whether you can read it here.
| What you get | Free | Essential | Premium | Pro |
|---|---|---|---|---|
| Published Polymarket and Kalshi price comparison | Free, no account | Free, no account | Free, no account | Free, no account |
| Prediction market prices, charts and market pages | Included | Included | Included | Included |
| The tables on this site, as JSON and CSV | Free, no account | Free, no account | Free, no account | Free, no account |
| Customer API keys (REST and WebSocket) | Not yet available | Not yet available | Not yet available | Not yet available |
Compared with dedicated arbitrage dashboards
There is a small class of prediction-market arbitrage scanners — subscription dashboards, hosted scrapers and a handful of marketplace actors — and they compete on how many opportunities they can list. The published prices for the paid ones run from about $59 a month. Vultax takes the opposite position on purpose: fewer rows, each from a reviewed contract match, with the fee assumption printed underneath and the raw table downloadable. A list of a hundred daily opportunities and a list of the pairs that are genuinely the same question are not the same list.
Competitor details last checked . They describe other products as their operators published them, not as an assessment of them.
Every table on this page
Each table carries its own source, observation time, coverage and limits, and can be taken away as JSON or CSV. A missing value means the source did not report it; it is never rendered as a zero.
01 Market snapshot
The Polymarket–Kalshi gap, before and after fees
The same matched contract on both venues, with the raw difference and what is left once each venue’s own fee is applied.
ObservedObserved 9 rowsWithin this table’s source-time freshness window; prices can change between observations.
| Meeting | Contract | PM − Kalshi (percentage points) | After venue fees (percentage points) | Polymarket 24h volume (USD) | Kalshi 24h volume (USD) | Kalshi open interest (USD) |
|---|---|---|---|---|---|---|
| September | 25 bp increase | 1 | 0 | 1,551,763 | 1,899,525 | 32,627,113 |
| September | No change | -2 | 0 | 2,205,884 | 1,899,525 | 32,627,113 |
| September | 25 bp decrease | -0.20 | 0 | 1,975,108 | 1,899,525 | 32,627,113 |
| October | 25 bp increase | 0 | 0 | 30,115.00 | 6,320.54 | 402,063.13 |
| October | No change | 1 | 0 | 6,046.00 | 6,320.54 | 402,063.13 |
| October | 25 bp decrease | -0.50 | 0 | 18,346.00 | 6,320.54 | 402,063.13 |
| December | 25 bp increase | -0.50 | 0 | 6,808.00 | 3,558.58 | 103,854.60 |
| December | No change | -3 | 1 | 4,334.00 | 3,558.58 | 103,854.60 |
| December | 25 bp decrease | -0.30 | 0 | 3,574.00 | 3,558.58 | 103,854.60 |
Scroll to see all columns.
CoverageOnly the reviewed Fed meeting and contract combinations shown. Prices are percentages of a $1 payout; a gap is not an executable return.
The after-fee column applies the source pack’s assumed fee of 2 percentage points across the pair. Real fees depend on your account, order type and the venue’s current schedule.
Volume and open interest are reported per meeting by each venue, not per contract row.
Depth, transfer time, settlement wording and account access are not in this calculation. A remaining gap is a reason to look, not an executable trade.
02 Market snapshot
Fed contract prices: Polymarket and Kalshi
The matching contract rows already assembled by Vultax’s prediction pack.
ObservedObserved 9 rowsWithin this table’s source-time freshness window; prices can change between observations.
| Meeting | Decision date | Contract | Polymarket | Kalshi | PM − Kalshi (percentage points) |
|---|---|---|---|---|---|
| September | 2026-09-16 | 25 bp increase | 78.5% | 77.5% | 1 |
| September | 2026-09-16 | No change | 20.5% | 22.5% | -2 |
| September | 2026-09-16 | 25 bp decrease | 0.35% | 0.5% | -0.20 |
| October | 2026-10-28 | 25 bp increase | 37.5% | 37.5% | 0 |
| October | 2026-10-28 | No change | 61.5% | 60.5% | 1 |
| October | 2026-10-28 | 25 bp decrease | 2.05% | 2.5% | -0.50 |
| December | 2026-12-09 | 25 bp increase | 57.0% | 57.5% | -0.50 |
| December | 2026-12-09 | No change | 39.5% | 42.5% | -3 |
| December | 2026-12-09 | 25 bp decrease | 3.2% | 3.5% | -0.30 |
Scroll to see all columns.
CoverageOnly the Fed meeting/contract combinations shown. Prices are percentages of a $1 payout; they are not forecasts of guaranteed outcomes.
Polymarket Gamma prices and Kalshi bid/ask midpoint or last-price fallback come from the source pack. They are collected sequentially.
Contract wording, settlement terms, fees and available depth must be checked at each venue. A displayed gap is not an executable arbitrage return.
The pack’s asOf records the parent Fed-pack refresh, not an exchange tick timestamp. Failed parent components can retain older observations.
Questions
Is prediction market arbitrage between Polymarket and Kalshi actually possible?
Occasionally, and much less often than the raw price differences suggest. The two venues price the same events independently, so gaps appear. Almost all of them are inside the combined cost of both legs. The rows on this page show the difference before and after the fee assumption so the distinction is visible rather than argued about.
Does Vultax place the trades?
No. Vultax is research: it does not route orders, hold funds, or connect to a venue on your behalf on any plan. The cross-venue calculation is explicitly marked as not a recommendation, and the in-app signal is labelled Watch only.
Which venues are compared?
Polymarket and Kalshi. There is no third venue in the comparison. Adding one means building and reviewing a new set of contract matches, not pointing a scraper at another site.
How current are the prices?
Every table states its own observation time and the freshness window it considers acceptable, and marks itself stale when the source is older than that. The two venues are read sequentially, so the two prices in a row are close together in time but not simultaneous — which is one more reason a small gap is not an edge.
Is there an API?
Vultax serves a public cross-venue endpoint at app.vultax.com/api/prediction-arbitrage. It returns the reviewed pairs with a watch-only posture and no recommendation, and it needs no key. Customer API keys for the wider platform are a separate matter and are not being issued at the moment.
Why do so few rows survive the fee column?
Because prediction-market fees are charged per contract on a price between zero and one, they are proportionally largest exactly where the interesting mispricings are. A contract trading at fifty cents carries the heaviest fee load on both venues. That is the structural reason this market is harder to arbitrage than a spot crypto pair, and it is why the after-fee column usually reads zero.
Can I see the underlying numbers?
Yes. Each table on this page links its own JSON and CSV export, and the whole document is available as JSON and Markdown from the links at the foot of the page. The exports carry the same observation times and coverage notes as the tables.
How often is there a gap worth acting on?
Rarely, on the contracts published here, and the after-fee column is the honest measure of it. Anyone advertising a steady stream of prediction-market arbitrage opportunities is either counting gross differences or counting pairs that are not the same question.
What about the third and fourth venues?
Other prediction venues exist and some are covered in Vultax's published research, but the comparison here is Polymarket and Kalshi only. Adding a venue means building and reviewing a set of contract matches for it, which is work with a review date attached, not a configuration change.
Coverage and methodology
- Public tables mirror existing Vultax source packs. They do not include account data, private watchlists or the complete app dataset.
- Source time, coverage and limitations apply to each table. Missing values are unavailable, not zero.
Published research behind this page
Dated write-ups of the same sources. A figure in a study describes the window it was written about, not the snapshot above.
A visible price gap between two exchanges is a gross number. Fees, depth, transfer time and your own feed latency decide what is left of it.
Original Vultax research: in an experimental test, a calibrated fair-value model beat raw Polymarket prices by ~9.6% on held-out Brier score. Where the favorite-longshot effect lives, what the model can honestly flag, and why it still isn't a trading edge.
Keep reading
Take this into the workspace
The comparison here is free and needs no account. A Vultax account adds the prediction desk, the trader research and the crypto workspace around it.
A free account needs no payment card and starts no subscription. Figures on this page were observed . JSON · Markdown · Schema