Kalshi charges a trading fee that depends on the contract price, not a flat percentage. For most markets a taker pays round up(0.07 × C × P × (1 − P)), with C the number of contracts and P the price in dollars. This article walks through that formula, the maker fee, how rounding works, and what it means when you subtract it from an arbitrage spread. Every figure below comes from Kalshi's own fee schedule (the July 2026 update) and its fee-rounding documentation, so check both for changes before you rely on a number.
The taker fee formula
The schedule describes the fee as a share of the expected earnings on a contract: the maximum possible earnings multiplied by the implied probability of making them. In dollars, for an order that is matched immediately:
- fee = round up(M × 0.07 × C × P × (1 − P))
- P: the contract price in dollars (50 cents is 0.5).
- C: the number of contracts traded.
- M: a per-contract multiplier, 1 by default unless the schedule says otherwise for that series.
- round up: rounds so that the fee plus the position cost lands on a centicent (a hundredth of a cent).
Because P × (1 − P) peaks at 0.25 when the price is 50 cents, the fee peaks there too and falls toward zero as the price approaches 0 or $1.
What it costs at different prices
Kalshi publishes a table for the general fee. A few rows for 100 contracts:
- $0.10 contract: $10.00 position, $0.63 fee.
- $0.30 contract: $30.00 position, $1.47 fee.
- $0.45 contract: $45.00 position, $1.74 fee.
- $0.50 contract: $50.00 position, $1.75 fee.
- $0.90 contract: $90.00 position, $0.63 fee.
You can check one yourself: 0.07 × 100 × 0.45 × 0.55 = 1.7325, which rounds up to the $1.74 in the table. For a single contract the table shows a fee of $0.02 at $0.50 and $0.01 at $0.10, so the cost per contract is not simply the 100-contract fee divided by 100. Small orders are where rounding matters most.
Maker fees
Trading fees are charged on orders that are matched immediately. An order that rests on the book is not charged, unless the product is covered by the maker-fee section of the schedule. There the formula uses 0.0175 instead of 0.07: round up(M × 0.0175 × C × P × (1 − P)), with M defaulting to 0 unless the schedule indicates otherwise. The fee is only charged when the resting order actually executes. Cancelling costs nothing. If you want to know whether a resting order on a given series pays a fee, read that series in the schedule rather than assuming.
Series with their own multipliers
The schedule has a list of non-standard series, each with a maker and a taker multiplier. Some show 0 for both, others show 1, and a small number differ between maker and taker. The list changes with each schedule update, so treat any table you copied from a blog, including this one, as a snapshot and look up the series ticker for the market you trade.
The rounding trap
Kalshi's fee-rounding documentation describes a second step after the formula. Balances have a target precision: $0.0001 for direct members and $0.01 for non-direct members, who reach Kalshi through a futures commission merchant. When a fill produces a balance change more precise than that, the exchange charges a rounding fee to bring the balance back onto the grid, and a fee accumulator carries any overpayment across the fills of an order and rebates it in steps of the account's precision. The documentation states that the net fee is trade fee plus rounding fee minus rebate, and that it is never below zero. Over a whole order the total is designed to converge to what a single equivalent fill would cost.
The practical point: the fee you see for one small fill can differ from the formula's raw result, while a larger order split across several fills settles close to the formula. This is why a one-contract test can mislead you about the cost of a hundred-contract position.
What else costs money on Kalshi
The schedule states there is no settlement fee and no membership fee. ACH deposits and withdrawals carry no fee, and card deposits can cost up to 2%. Users who reach Kalshi through a futures commission merchant may pay that firm's own fees, which are disclosed separately.
Putting the fee into an arbitrage calculation
An illustrative cross-platform trade, not a live one: buy 100 YES contracts on Kalshi at $0.45 ($45.00) and 100 NO contracts on the other platform at $0.50 ($50.00). Together they cost $95.00 and pay $100.00 at resolution if both legs fill and settle on the same terms, a gross edge of $5.00. The Kalshi taker fee on the $0.45 leg is $1.74, which leaves $3.26 before any cost on the other platform. The other leg's fee depends on that platform and the market category, which we cover in Polymarket Fees Explained. The full method is in how to calculate net edge after fees.
Two consequences follow. A fee that peaks near 50 cents eats the largest share of the edge on mid-priced contracts, so a spread that looks fine at $0.50 can vanish while the same spread at $0.10 or $0.90 survives. And the fee is charged when the order matches, whether or not the other leg fills, which is part of why two-leg execution matters. Our free arbitrage calculator lets you test your own prices, and the realistic range of returns is in how much you can make with prediction market arbitrage.
Where Arbitrage Agent fits
Arbitrage Agent applies fees when it computes the net edge of each matched pair, then shows the result in a live feed with a step-by-step guide for both legs, and you place the orders yourself. See the plans for what is available today, or start with the Starter plan.
To try your own numbers, use the free arbitrage calculator: it takes the two prices, your stake and the days to resolution, and shows the fees, net edge and annualised return.
Try it with your own order in the free Kalshi fee calculator.
Related articles
- Polymarket Fees Explained: What You Actually Pay in 2026
- How to Calculate Net Edge After Fees on Polymarket (With Worked Examples)
- How Prediction Market Arbitrage Works — Complete Guide 2026
- 5 Kalshi Trading Strategies Ranked by Risk (2026)
Key terms: Spread · Two-Leg Execution · Prediction Market Arbitrage