Libertas · Veritas · ProsperitasL · V · P

Prediction market fees: break-even edge, rounding and maker vs taker

LVP ResearchPricingPublished 27 October 20266 min read

AbstractKalshi's published taker fee is rounded up to the next cent. We tabulate what that means per contract across prices and order sizes. Three results matter in practice. The fee is a constant 7·P% of a winning buyer's profit, so it bites hardest on favourites. Rounding makes a single-contract order at 50¢ pay 2¢ rather than 1.75¢. And a same-venue Yes/No Dutch book needs a gross gap of about 3.5¢ at mid-range prices before it covers two taker fees.

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

(1)

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:

(2)

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#

Price1 contract5 contracts10 contracts100 contracts1,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¢
Table 1. Taker fee per contract (cents), computed from equation (1). The rounding is applied once per order.

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.

Effective taker fee per contract at 50 cents by order size0.0¢0.6¢1.1¢1.7¢2.2¢1234567891011121314151617181920¢ per contract
Figure 1. Per-contract taker fee at 50¢ by order size (1–20 contracts). Orders of 4, 8, 12, 16 and 20 contracts hit 1.75¢ exactly because 0.07 × 0.25 × C is then a whole number of cents.

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

(3)

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).

Maker vs takerOn markets where the maker coefficient is 0.0175, a resting order at 50¢ pays 0.4375¢ per contract unrounded, a quarter of the taker fee. Where it is zero, the entire edge of a liquidity provider is the spread it quotes, minus adverse selection (see Glosten–Milgrom for event contracts).

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

(4)

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 price1 contract, 2 legs100 contracts, 2 legs1,000 contracts, 2 legs100 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¢
Table 2. Smallest gross gap (cents per pair) at which buying Yes and No both as a taker is profitable after fees. Excludes carry; see Table 3.

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 rate7 days30 days90 days180 days365 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¢
Table 3. Opportunity cost per $1 pair, in cents, by time to resolution (simple interest).

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#

  1. Express every edge in probability points, then subtract the per-contract fee from Table 1 for your size.
  2. Size orders so that lands on, or just under, a whole cent.
  3. Prefer resting orders where maker fees are lower; the difference at 50¢ is up to 1.3¢ per contract.
  4. 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#

  1. 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.

Questions about this note? The research desk replies to every serious one.

Write to research →