Prediction market fees: break-even edge, rounding and maker vs taker
The formula and what it implies#
Kalshi's fee schedule states the general trading fee for a taker order of contracts at price (in dollars) as
with a maker formula of the same shape and a coefficient of 0.0175 on markets where maker fees apply (on many markets the maker multiplier is zero). Fee schedules change, and individual markets can carry different coefficients, so always confirm the current PDF. The arithmetic below holds for any coefficient; replace 0.07 with yours.
The shape is the interesting part. It is the variance of the contract's payoff, so the fee is proportional to the risk being transferred rather than to the notional. Two identities follow directly:
A buyer at 90¢ gives up 6.3% of their potential profit in fees; a buyer at 10¢ gives up 0.7%. As a share of the stake the pattern reverses: a buyer at 10¢ pays 6.3% of what they put up, a buyer at 90¢ pays 0.7%. Which framing matters depends on the strategy. A forecaster buying favourites cares about the first; a tail-risk seller (who is, in effect, buying the 90¢ side) cares about both.
Per-contract cost by price and size#
| Price | 1 contract | 5 contracts | 10 contracts | 100 contracts | 1,000 contracts |
|---|---|---|---|---|---|
| 1¢ | 1.00¢ | 0.20¢ | 0.10¢ | 0.07¢ | 0.07¢ |
| 3¢ | 1.00¢ | 0.40¢ | 0.30¢ | 0.21¢ | 0.20¢ |
| 5¢ | 1.00¢ | 0.40¢ | 0.40¢ | 0.34¢ | 0.33¢ |
| 10¢ | 1.00¢ | 0.80¢ | 0.70¢ | 0.63¢ | 0.63¢ |
| 20¢ | 2.00¢ | 1.20¢ | 1.20¢ | 1.12¢ | 1.12¢ |
| 30¢ | 2.00¢ | 1.60¢ | 1.50¢ | 1.47¢ | 1.47¢ |
| 40¢ | 2.00¢ | 1.80¢ | 1.70¢ | 1.68¢ | 1.68¢ |
| 50¢ | 2.00¢ | 1.80¢ | 1.80¢ | 1.75¢ | 1.75¢ |
| 60¢ | 2.00¢ | 1.80¢ | 1.70¢ | 1.68¢ | 1.68¢ |
| 70¢ | 2.00¢ | 1.60¢ | 1.50¢ | 1.47¢ | 1.47¢ |
| 80¢ | 2.00¢ | 1.20¢ | 1.20¢ | 1.12¢ | 1.12¢ |
| 90¢ | 1.00¢ | 0.80¢ | 0.70¢ | 0.63¢ | 0.63¢ |
| 95¢ | 1.00¢ | 0.40¢ | 0.40¢ | 0.34¢ | 0.33¢ |
| 97¢ | 1.00¢ | 0.40¢ | 0.30¢ | 0.21¢ | 0.20¢ |
| 99¢ | 1.00¢ | 0.20¢ | 0.10¢ | 0.07¢ | 0.07¢ |
Three regimes are visible. Single contracts pay 1¢ or 2¢, a step function of price. From roughly 100 contracts upward the fee converges to its unrounded value, 1.75¢ at 50¢. In between, the per-contract fee jumps around as the order crosses cent boundaries.
The rounding drag on small orders#
Because rounding is per order, the effective rate depends on order size in a sawtooth pattern. At 50¢ the unrounded fee is 1.75¢ per contract; the realised per-contract fee for orders of 1 to 20 contracts is shown below.
At 50¢, sizes that are multiples of four land exactly on whole cents, because and . Between them the overpayment reaches 0.25¢ per contract (14% on a single contract). For a strategy that trades many small clips, the difference between a 1.75¢ and a 2¢ fee is the difference between a 1¢ edge being worth 1.25¢ or 1¢ of cost. Batching into sizes that land on cent boundaries is free money.
Break-even probability#
A buyer at price paying fee per contract has positive expected value only if their probability exceeds
For a single contract at 50¢, . For 100 contracts, 51.75%. Measured in probability points, the hurdle is just the per-contract fee in Table 1, which makes Table 1 directly usable as a "minimum edge" table. A forecaster who is right about a 2-point mispricing at 50¢ makes almost nothing as a taker, and makes money only by resting orders as a maker or by trading where the fee is small (the tails).
Minimum gap for a Yes/No Dutch book#
If Yes asks at and No asks at on the same venue and , buying both locks in before fees. With taker fees on both legs the trade only works if the gap satisfies
We solved equation (4) numerically for the smallest profitable gap at each Yes price, for one fee leg (for example, when the other leg is on a venue without taker fees) and for two.
| Yes price | 1 contract, 2 legs | 100 contracts, 2 legs | 1,000 contracts, 2 legs | 100 contracts, 1 leg |
|---|---|---|---|---|
| 3¢ | 2.01¢ | 0.46¢ | 0.44¢ | 0.22¢ |
| 5¢ | 2.01¢ | 0.73¢ | 0.71¢ | 0.35¢ |
| 10¢ | 2.01¢ | 1.34¢ | 1.34¢ | 0.64¢ |
| 20¢ | 4.01¢ | 2.34¢ | 2.34¢ | 1.13¢ |
| 30¢ | 4.01¢ | 3.03¢ | 3.02¢ | 1.48¢ |
| 40¢ | 4.01¢ | 3.41¢ | 3.41¢ | 1.69¢ |
| 50¢ | 4.01¢ | 3.51¢ | 3.50¢ | 1.76¢ |
| 60¢ | 4.01¢ | 3.32¢ | 3.31¢ | 1.69¢ |
| 70¢ | 4.01¢ | 2.87¢ | 2.86¢ | 1.48¢ |
| 80¢ | 3.01¢ | 2.16¢ | 2.15¢ | 1.13¢ |
| 90¢ | 2.01¢ | 1.21¢ | 1.20¢ | 0.64¢ |
| 95¢ | 2.01¢ | 0.65¢ | 0.63¢ | 0.35¢ |
| 97¢ | 2.01¢ | 0.40¢ | 0.39¢ | 0.22¢ |
At mid-range prices a two-leg Dutch book needs about 3.5¢ of gross gap at institutional size and 4¢ for a single contract. Near the tails the hurdle falls below half a cent. Fee-driven no-arbitrage bands are therefore widest exactly where contracts are most uncertain, which is also where the market is most often watched.
Carry: the fee nobody charges you#
A locked Dutch book still ties up roughly $1 of capital per pair until settlement. The gap must also beat the return that capital could earn elsewhere:
| Risk-free rate | 7 days | 30 days | 90 days | 180 days | 365 days |
|---|---|---|---|---|---|
| 3.0% | 0.06¢ | 0.25¢ | 0.74¢ | 1.48¢ | 3.00¢ |
| 4.5% | 0.09¢ | 0.37¢ | 1.11¢ | 2.22¢ | 4.50¢ |
| 6.0% | 0.12¢ | 0.49¢ | 1.48¢ | 2.96¢ | 6.00¢ |
At 4.5%, a pair held for six months must clear 2.2¢ of carry on top of Table 2. A 4¢ gross gap on a six-month mid-range contract is, after fees and carry, worth about nothing. Venues that pay interest on balances or positions reduce this term, so the comparison must be made net of what each venue pays.
A practical checklist#
- Express every edge in probability points, then subtract the per-contract fee from Table 1 for your size.
- Size orders so that lands on, or just under, a whole cent.
- Prefer resting orders where maker fees are lower; the difference at 50¢ is up to 1.3¢ per contract.
- For two-leg trades, use Table 2 for fees and Table 3 for carry, and only then compare with the quoted gap. The event contract calculator does this for a single position.
# research/fees.py (excerpt)
import math
def ceil_cent(x): return math.ceil(round(x * 100, 9)) / 100
def taker(C, P): return ceil_cent(0.07 * C * P * (1 - P))
taker(1, 0.50), taker(4, 0.50), taker(100, 0.50) # (0.02, 0.07, 1.75)
Questions#
How are Kalshi fees calculated?
Kalshi's published taker fee is 0.07 × contracts × price × (1 − price), rounded up to the next cent per order. At 50¢ that is 1.75¢ per contract for large orders and 2¢ for a single contract. Maker fees, where charged, use a 0.0175 coefficient. Check the current fee schedule, as coefficients can change and vary by market.
Why are prediction market fees highest at 50 cents?
Because the fee is proportional to P(1−P), the variance of the contract's payoff, which peaks at P = 0.5. As a share of a winning buyer's profit, the fee equals 7 × P percent, so it is larger for favourites.
What is the break-even probability after fees?
The price plus the per-contract fee. Buying at 50¢ with a 1.75¢ fee requires a true probability above 51.75% to have positive expected value.
References#
- Kalshi. Fee schedule (published PDF at kalshi.com/docs/kalshi-fee-schedule.pdf), accessed October 2026. Formulas as quoted in this note; check the current version before relying on them.
DisclosureThis note is research and education. It is not investment advice or an offer to trade, and nothing in it describes the firm's own results. Code and outputs: research/fees.py in our research repository, reproducible with a fixed seed.