Polymarket vs. Kalshi: Fees, Settlement and Access

Same object, two machines. Both trade a claim that pays $1 or nothing, and both run an order book — then they diverge on the three things that actually cost you money: the fee formula, who decides the outcome, and who is allowed in the door.

Polymarket and Kalshi both run central limit order books on binary event contracts, but they differ in three ways that matter: how fees are charged, who determines settlement, and who may legally trade. Kalshi is a CFTC-regulated exchange settling in dollars; Polymarket settles in USDC against an on-chain oracle.

A note on what this page does not do

This page explains mechanics. It shows no live Polymarket or Betfair market data, and none of the prices below are quotes — they are illustrative inputs chosen to make the arithmetic checkable. Ingesting or displaying those venues to US readers is held behind a legal review; our board’s exchange data comes from Kalshi. Nothing here is legal, tax or financial advice.

The fee formulas, on one contract

Price the identical position at both venues: 100 contracts at 60¢, crossing the spread. Kalshi’s published taker schedule:[1]

feeKalshi=0.07CP(1P)cent=0.07×100×0.60×0.40=$1.68\text{fee}_{\text{Kalshi}} = \left\lceil 0.07 \, C \, P (1-P) \right\rceil_{\text{cent}} = \left\lceil 0.07 \times 100 \times 0.60 \times 0.40 \right\rceil = \$1.68

Polymarket’s published schedule has a different shape: a base rate applied to the cheaper side of the contract.[2]

feePoly=r×min(P,1P)×C=r×0.40×100=40r\text{fee}_{\text{Poly}} = r \times \min(P,\, 1-P) \times C = r \times 0.40 \times 100 = 40r

where:

So the honest side-by-side, on this contract, as of the review date: $1.68 against $0.00. That is a real difference and it is also the least stable number on this page — a base rate is a dial the venue can turn, and any figure here is a dated snapshot, not a guarantee. Check the venue’s own fee page before you rely on either.

Why the shapes matter more than the levels

Levels change. Shapes are structural. Kalshi’s fee is a quadratic hump in the price; a rate on min(P,1P)\min(P, 1-P) is a linear tent. Both peak at a coin flip; they part company everywhere else, and the ratio has an exact closed form, because P(1P)=min(P,1P)×max(P,1P)P(1-P) = \min(P,1-P) \times \max(P,1-P):

feeKalshifeePoly=0.07P(1P)rmin(P,1P)=0.07r×max(P,1P)\frac{\text{fee}_{\text{Kalshi}}}{\text{fee}_{\text{Poly}}} = \frac{0.07\,P(1-P)}{r \, \min(P, 1-P)} = \frac{0.07}{r} \times \max(P,\, 1-P)

Set a hypothetical r=2%r = 2\% purely to make the shapes comparable — the ratio is then 3.5×max(P,1P)3.5 \times \max(P, 1-P), and it grows toward the tails:

PriceKalshi, per contractTent at r = 2%Ratio
50¢1.75¢1.00¢1.75×
60¢1.68¢0.80¢2.10×
75¢1.31¢0.50¢2.63×
90¢0.63¢0.20¢3.15×
95¢0.33¢0.10¢3.33×

Both fees are cheap in absolute cents at the tails; the quadratic is relatively dearer there. And on either venue the number that decides anything is fee relative to outlay: on Kalshi that is 0.07(1P)0.07(1-P), which is 6.7% of the money at a 5¢ contract and 0.7% at 90¢. Cheap in cents, expensive in percent.

Three fine points that fee tables tend to omit. Kalshi charges a maker roughly a quarter of the taker rate, with a flat 0.25% maker fee on some major events — trivial at 50¢, a real slice of a sub-5¢ contract.[1] Kalshi rounds the fee up to the next cent, which on a 1-contract order at 90¢ turns 0.63¢ into a full penny, 59% above rate. And on Polymarket the costs that survive a zero fee are the spread and the on- and off-ramp — moving dollars into and out of USDC is not free, and it is a per-trip cost that does not appear in any fee formula.

Depth, ticks and how orders rest

Structurally the two books are close cousins: resting bids and asks, price-time priority, makers and takers, and the identity that buying NO at 40¢ is selling YES at 60¢. Where they differ:

KalshiPolymarket
CollateralUS dollars, held at the affiliated clearing organisationUSDC on-chain
Tick sizeWhole cents, 1¢–99¢Set per market; can be finer than a cent
MatchingExchange matching engineOff-chain matching, on-chain settlement
Creating a pairExchange nets YES against NO internally$1 of USDC mints one YES and one NO; the pair redeems for $1
Cost floorSpread + feeSpread + on/off-ramp; fee rate venue-set

The mint-and-redeem row is the mechanically interesting one: because a dollar of collateral can always be split into a YES and a NO and recombined, PYES+PNOP_{\text{YES}} + P_{\text{NO}} is pinned near $1 by construction rather than by convention. Both venues are read the same way once you have the four numbers — bid, ask, and the depth behind each — and on both, the midpoint is the lazy answer. The microprice is the right one.

Settlement: the difference that has no analogue at a sportsbook

Kalshi. Each contract ships with a written rulebook naming the settlement source and the resolution criteria, and the exchange determines the outcome against it, under CFTC oversight, with a defined process for disputes. Settlement itself is free — a round trip pays the fee twice, holding to resolution pays it once.

Polymarket. Resolution runs through the UMA optimistic oracle. A proposer posts the outcome with a bond; a challenge window opens; if nobody disputes, that answer stands. If somebody does dispute, the question escalates to a vote of UMA token holders.[3]

Read that last clause slowly, because it is a risk category that does not exist on a regulated exchange or at a sportsbook: ambiguous market wording is resolved by token-holder vote. It is fast and cheap when a question is crisp. When a question is loosely worded, the outcome depends on how a governance process reads the sentence, and there is a public history of contested resolutions on exactly that boundary. For a fair-value model this is not a footnote — a contract whose settlement is contestable is not the same instrument as one whose settlement is not, even when the two trade at identical prices.

Access, as of 24 July 2026

A dated snapshot, because this is the fastest-moving row in the table and any page that states it flatly is wrong within a quarter.

This is where the competing content in this niche fails hardest: it states all of the above as resolved, usually with an affiliate link attached. It is not resolved. Nothing on this page is legal or tax advice, and event-contract tax treatment in particular is not obviously the same as gambling-winnings treatment — ask a professional about your own situation.

Two venues, one opinion

Here is the part that matters if you are building a fair line rather than picking a venue. Kalshi and Polymarket list the same events, and traders move capital between them, so any meaningful gap gets closed:

Illustrative cross-venue gap (not live prices)

YES at 60¢ on Kalshi + NO at 37¢ on the zero-fee venue=97¢ for a $1 payoff\text{YES at } 60\text{¢ on Kalshi} \ + \ \text{NO at } 37\text{¢ on the zero-fee venue} = 97\text{¢ for a } \$1 \text{ payoff}
gross=3.00¢Kalshi taker fee, 60¢ leg=0.07×0.60×0.40=1.68¢fee, 37¢ leg=0\text{gross} = 3.00\text{¢} \qquad \text{Kalshi taker fee, } 60\text{¢ leg} = 0.07 \times 0.60 \times 0.40 = 1.68\text{¢} \qquad \text{fee, } 37\text{¢ leg} = 0
net=3.001.680=1.32¢ per pair=1.36% on 97¢ committed\text{net} = 3.00 - 1.68 - 0 = 1.32\text{¢ per pair} = 1.36\% \ \text{on } 97\text{¢ committed}

That 1.36% exists only because the second leg rests on a venue charging nothing. Put both legs on Kalshi and the 37¢ leg owes its own fee:

fee, 37¢ leg=0.07×0.37×0.63=1.63¢3.001.681.63=0.31¢ per pair\text{fee, } 37\text{¢ leg} = 0.07 \times 0.37 \times 0.63 = 1.63\text{¢} \qquad 3.00 - 1.68 - 1.63 = -0.31\text{¢ per pair}
Same gap, both legs fee-bearing, and the pair is a loss — which prints as $0, not as a small win. The one-fee version is just as fragile: shrink that 3.00¢ gap to 1.5¢ and it nets −0.18¢, another $0. Costs are not a rounding step you apply afterwards; they decide whether the thing exists. And this ignores execution risk entirely: depth, partial fills, and the clock.

Because that pressure is constantly applied, the two venues’ prices — and their errors — move together. Treating them as two independent opinions and averaging is a statistics error with a measurable size. For two estimators of equal variance σ2\sigma^2 and correlation ρ\rho:

Var ⁣(x1+x22)=σ2(1+ρ)2neff=21+ρ\operatorname{Var}\!\left(\tfrac{x_1 + x_2}{2}\right) = \frac{\sigma^2 (1 + \rho)}{2} \qquad\Rightarrow\qquad n_{\text{eff}} = \frac{2}{1 + \rho}

What two correlated venues are worth

ρ=0.00    neff=2.00ρ=0.50    1.33\rho = 0.00 \;\Rightarrow\; n_{\text{eff}} = 2.00 \qquad \rho = 0.50 \;\Rightarrow\; 1.33
ρ=0.90    neff=1.05ρ=0.98    1.01\rho = 0.90 \;\Rightarrow\; n_{\text{eff}} = 1.05 \qquad \rho = 0.98 \;\Rightarrow\; 1.01
Two arbitrage-linked venues at ρ=0.9\rho = 0.9 carry the information of 1.05 opinions, not 2. Pool them at face value and the confidence interval you print is roughly 1.91.38\sqrt{1.9} \approx 1.38 times narrower than the evidence supports — a fabricated certainty, which on a site whose promise is “check our math” is the worst possible bug.

So the pooling step discounts their combined weight by the measured residual correlation, and the grading step is leave-one-out: when scoring a venue’s price against the benchmark, that venue is excluded from the benchmark. Skip that and you measure a venue partly against itself and systematically understate the error. It is not a refinement; it is a correctness bug.

Consistent with the rest of the site, the method above is published and the fitted numbers are not: the measured correlation between venues and the learned per-venue weights stay private, while the board publishes the result — fair probability, confidence, agreement, venue count. The same boundary applies to the sportsbook pool.

Open the free exchange-vs-book arbitrage calculator →Stake split, contracts, and the net return after the taker fee and the book’s vig — with the honest $0 when the gap does not survive its costs.

Sources

  1. Kalshi. “Fee Schedule” (July 2026 revision). — taker and maker formulas, the round-up-to-the-cent rule, the flat 0.25% maker case, and the zero settlement fee.
  2. Polymarket. Developer documentation — central limit order book, fee schedule and market mechanics. — the base-rate-on-min(P, 1−P) fee shape; the rate is venue-set and should be read live.
  3. UMA. Optimistic Oracle documentation. — propose, bond, challenge window, escalation to a token-holder vote.
  4. Burgi, C., Deng, W. & Whelan, K. (2026). “Makers and Takers: The Economics of the Kalshi Prediction Market.” GWU Working Paper 2026-001. PDF. — informative prices, favorite–longshot bias after fees: neither venue is an unbiased oracle.
  5. Genest, C. & Zidek, J. V. (1986). “Combining Probability Distributions: A Critique and an Annotated Bibliography.” Statistical Science 1(1), 114–135. — pooling estimates, and why correlated sources cannot be counted twice.

Every formula here lives on the Formula Sheet for quick reference.

Check your understanding

Three quick questions. Pick an answer to see if it's right, and why.

Frequently asked questions

What is the difference between Polymarket and Kalshi?

Both run central limit order books on binary event contracts. Kalshi is a CFTC-regulated designated contract market that settles in US dollars against a written contract rulebook. Polymarket is an on-chain venue collateralised in USDC that settles through the UMA optimistic oracle, where a proposed outcome can be disputed and voted on.

How do Polymarket and Kalshi fees compare on the same contract?

On 100 contracts at 60¢, Kalshi's taker fee is ⌈0.07 × 100 × 0.60 × 0.40⌉ = $1.68. Polymarket's published schedule charges a base rate against min(P, 1−P) × shares, and the base rate on its order book has long been reported as zero, which makes the headline fee $0.00. Verify the current rate at the venue before relying on either number.

Why does the Kalshi fee shape differ from a flat-rate fee?

Kalshi's 0.07 × P × (1−P) is a quadratic hump; a rate applied to min(P, 1−P) is a linear tent. Both peak at 50¢, but their ratio is exactly (0.07 ÷ r) × max(P, 1−P), so the gap between them widens toward the tails rather than staying constant.

Are Kalshi and Polymarket two independent opinions on the same event?

No. Arbitrage keeps their prices tied together, so their errors are correlated. Averaging two estimators with correlation ρ gives the precision of 2 ÷ (1 + ρ) independent ones: at ρ = 0.9 two venues are worth 1.05 opinions, not 2. Pooling them at face value manufactures confidence that is not there.

Does Teacher's Bet show live Polymarket prices?

No. This page explains how the venue works but displays no live Polymarket or Betfair market data. Ingesting or displaying those venues to US users is held behind a legal review, so the board's exchange data comes from Kalshi and its sportsbook data from licensed feeds.