Kalshi fees explained

The formula, the three tiers, and the rounding detail that makes the published table wrong for small trades.

Kalshi's fee schedule is short, and most of it is one equation. What follows is that equation, what the multipliers actually default to, and one detail about rounding that cost me a rebuilt calculator to discover.

The formula

Fees are charged per fill, and they depend on the price you trade at:

taker = ceil( M × 0.07   × C × P × (1 - P) )
maker = ceil( M × 0.0175 × C × P × (1 - P) )

C = number of contracts
P = price in dollars (a 40¢ contract is P = 0.40)
M = a per-series multiplier

The P × (1 - P) term is the interesting part. It peaks at 50¢ and collapses toward either end, so a trade at 50¢ carries the maximum fee and a trade at 5¢ or 95¢ carries very little. Fees are highest exactly where you are most uncertain.

The multipliers, and what they default to

On most series the multipliers are 1 for takers and 0 for makers. Zero for makers is not a typo: on standard series, resting an order that someone else crosses costs you nothing at all.

But that is only the default. Kalshi publishes per-series multipliers, and they fall into three groups:

TierTakerMakerWhat it means
Standard10Most series. Crossing the spread costs; resting is free.
Non-standard11Both sides pay. Resting is no longer free.
Free00A small number of series charge nothing either way.

The middle tier is the one that catches people. A strategy whose economics depend on resting orders being free will quietly lose money on a series where the maker multiplier is 1, and nothing in the order ticket warns you.

The current per-series list is in the fee calculator, which is searchable by ticker. Series move between tiers, so check rather than memorise.

The rounding, which is where I got it wrong

Kalshi's published fee schedule includes a table of worked examples. I built a calculator against that table, matched all twenty-one rows exactly, and concluded it was correct.

It wasn't. The fee rounds up to a hundredth of a cent — a centicent, $0.0001 — not to a whole cent. The published table shows cent-rounded figures because that is how you print a table. The actual charge is the raw number.

At mid-market the difference is small. At the wings it is not:

PriceRaw fee, 1 contractActual chargeIf rounded to a cent
50¢$0.0175$0.0175$0.02
90¢$0.0063$0.0063$0.01
99¢$0.000693$0.0007$0.01

At 99¢ that is a fourteen-fold overstatement. For anything trading in size at the wings, a cent-rounded model tells you a strategy is unprofitable when it isn't.

Validating against documentation only proves you can read the documentation. I reconciled the corrected formula against 12,000 real fills on a live account, and every single one matched to the hundredth of a cent. That is the test that means something.

Break-even

Because the fee is charged per contract, break-even has a pleasingly simple form:

break-even price = entry price + fee per contract

Buy at 50¢ as a taker and you pay 1.75¢ per contract, so the trade needs to be right 51.75% of the time rather than 50%. The rate is identical whether you trade one contract or a thousand — size changes the total, never the break-even.

Selling before settlement means a second fee, so a round trip crosses twice. The calculator works both out, including the exit leg.

What Kalshi does not charge for

So the fee model really is just the one equation, applied per fill, with a per-series multiplier and a rounding rule that is easy to get wrong.

Related: why resting orders on both sides of a binary market can't beat the fees, and the free fee and break-even calculator with the searchable per-series list.

I also build Kalshi trading bots — execution, fee accounting that matches the maths above, and risk controls. See what that involves → I don't sell strategies and I don't promise profit.