Short answer: paper trading on Kalshi usually assumes you get filled at a price you would not actually get, pays no fee, and never misses a fill. Each of those assumptions is small. Together they can turn a strategy that looks comfortably ahead on paper into one that is under breakeven with real money. This guide walks through the gap one cost at a time, with worked numbers, so you can decide what a paper result is really telling you before you connect an account.
DeskBot is independent software and is not affiliated with or endorsed by Kalshi. Nothing here is a prediction of results. Trading involves risk and you can lose money.
What "paper trading" means on Kalshi
There are two common ways to practise on Kalshi without risking money:
-
Kalshi's own demo environment. Kalshi runs a separate demo exchange at
demo.kalshi.cowith mock funds, and its API documentation lists a separate demo Trade API root (https://external-api.demo.kalshi.co/trade-api/v2). Kalshi's docs also say plainly that prices and behaviour in demo markets may not reflect real markets. That matters: a demo order book is not the live order book, so fills there tell you little about fills in production. - Simulated fills against live market data. A bot reads the real, public Kalshi order book and records the trade it would have made, at some assumed price, without sending an order. This is what most "paper mode" tools do. The prices are real; the fill is imaginary.
The second approach is closer to reality because the prices come from the market you will actually trade. But the result still depends entirely on the assumptions the simulator makes about price, fees and fills. Those three assumptions are where the gap lives.
Gap 1: the fill price (spread)
Every Kalshi market has a best bid and a best ask. If you want to buy YES right now, you pay the ask. A simulator that records your entry at the last traded price or at the midpoint between bid and ask is quietly giving you a discount you will not get live.
Worked example. Suppose a 15-minute market shows:
- YES best bid: 48¢
- YES best ask: 51¢
- Midpoint: 49.5¢
A paper engine that fills you at the midpoint records an entry of 49.5¢. A real market order pays 51¢. That 1.5¢ looks trivial, but on a contract that pays $1.00, it moves your breakeven win rate up by 1.5 percentage points before any fee. In thin books, where the spread can be 3¢ to 10¢ wide, the paper discount is bigger.
If you want to read a book properly before trusting a fill assumption, our guide on how to read the Kalshi order book covers depth and spread in more detail.
Gap 2: the trading fee
Kalshi publishes its fee schedule at kalshi.com. As of the schedule effective July 7, 2026, the general trading fee is:
fee = round up( M × 0.07 × C × P × (1 − P) )
where C is the number of contracts, P is the price in dollars, and M is a series multiplier (standard series use 1; some products have their own rows in Kalshi's non-standard fee tables, so check the current schedule for the series you trade). Orders that rest on the book and are filled later are charged the lower maker fee, round up( M × 0.0175 × C × P × (1 − P) ), except in series Kalshi lists with a zero maker multiplier. Kalshi's schedule states there is no settlement fee.
The P × (1 − P) term means the fee is largest near 50¢ and shrinks toward the extremes. With M = 1, the taker fee per contract works out to roughly:
| Price (P) | P × (1 − P) | Taker fee per contract (approx.) | Maker fee per contract (approx.) |
|---|---|---|---|
| 10¢ | 0.09 | 0.63¢ | 0.16¢ |
| 30¢ | 0.21 | 1.47¢ | 0.37¢ |
| 50¢ | 0.25 | 1.75¢ | 0.44¢ |
| 70¢ | 0.21 | 1.47¢ | 0.37¢ |
| 90¢ | 0.09 | 0.63¢ | 0.16¢ |
Rounding is applied to the order total as described in Kalshi's schedule, so small orders can cost slightly more per contract than the table shows. For 100 contracts at 50¢ as a taker, the fee is 0.07 × 100 × 0.25 = $1.75.
A paper engine that ignores fees overstates every trade by this amount. If your strategy also exits before settlement (selling the contract back instead of holding to the $1/$0 payout), you pay a fee on the exit as well, so the round-trip cost roughly doubles. Our Kalshi fees explained and maker vs taker fees articles go deeper on the formula, and the fee calculator does the arithmetic for any price and size.
Putting gaps 1 and 2 together: breakeven win rate
A Kalshi YES contract held to settlement pays $1.00 if the outcome is YES and $0 if it is NO. If you pay a total cost of c per contract (price plus fee), you need to win at least c of the time to break even. That is the whole formula:
breakeven win rate = (entry price + fee per contract) ÷ $1.00
Now compare what a paper engine and a live order see for the same signal, using the 48¢/51¢ book above and a taker entry held to settlement:
| Paper (midpoint, no fee) | Live (pay the ask, taker fee) | |
|---|---|---|
| Entry price | 49.5¢ | 51¢ |
| Fee per contract | 0¢ | ≈1.75¢ (0.07 × 0.51 × 0.49) |
| Total cost per contract | 49.5¢ | ≈52.75¢ |
| Breakeven win rate | 49.5% | ≈52.75% |
A strategy that wins 52% of the time looks profitable on this paper engine (52% against a 49.5% bar) and loses money live (52% against a 52.75% bar). Nothing about the strategy changed. Only the accounting did.
If you would rather plug in your own numbers, the break-even calculator does exactly this sum, and Kalshi fees and break-even win rate walks through more price levels.
Gap 3: fills that never happen
The third gap is harder to see because it does not show up as a cost on any single trade. It shows up as which trades you get.
- Size. Paper fills assume the whole order fills. If the ask shows 40 contracts at 51¢ and you want 100, the other 60 fill at a worse price or not at all.
- Speed. Between the moment a signal fires and the moment a live order reaches the exchange, the book can move. In a 15-minute market close to its close time, prices can jump several cents in seconds.
- Resting orders and adverse selection. If you place a limit order and wait to be filled as a maker, you save on fees, but you tend to get filled most often when the price is moving against you. A simulator that counts every resting order as filled will overstate how good those entries were. The orders that do not fill are frequently the ones that would have won.
That last point is the one most often missed. Paper results that include "filled at my limit price" on every trade are especially optimistic, because in the live market the fills you get are a biased sample.
Gap 4: sample size
Even with perfect fill accounting, a short paper run is noisy. A coin-flip strategy run for 30 trades will show a win rate between roughly 40% and 60% most of the time just by chance. That range is far wider than the 1 to 4 point gaps above. A paper run of a day or two cannot tell you whether a strategy beats its breakeven; it can tell you whether the bot behaves the way you expect: which markets it looks at, which trades it takes and skips, and how it sizes them.
Treat a short paper run as a test of behaviour, not a measure of edge.
A checklist for reading any paper result
Before trusting a paper win rate, from any tool, ask:
- What price was each fill recorded at? Last trade, midpoint, or the actual ask/bid at that moment? Only the last one is realistic for an immediate order.
- Were Kalshi's fees subtracted? At which rate, taker or maker, and for which series multiplier?
- Was order size checked against displayed depth?
- Did resting orders count as filled automatically?
- How many trades, over how many distinct days and market conditions?
- What is the breakeven win rate at the average entry price and fee? Compare the paper win rate to that, not to 50%.
If you cannot answer the first two, treat the result as an upper bound, not an estimate. Our Kalshi trading bot checklist and how to automate Kalshi trades safely cover the rest of the pre-live checks: daily loss caps, position limits and how to start small.
How to use paper mode well
Paper mode is still worth running. It is the cheapest way to find out whether a bot does what you think it does. A sensible order of operations looks like this:
- Run paper mode first and watch which markets the bot considers, which trades it takes, and which it skips and why.
- Re-price the paper trades yourself at the ask (or bid) plus the taker fee, and compare the adjusted win rate to the breakeven.
- Go live at the smallest size you are comfortable losing and compare live fills against what paper recorded for the same signals. The difference is your real execution cost.
- Judge the strategy on live results over a meaningful number of trades, against breakeven, before changing size.
Where DeskBot fits
DeskBot is a desktop app that runs on your own computer (Windows or Intel Mac) and trades Kalshi's 15-minute markets using your own Kalshi account and API key, with rules and limits you set, including a daily loss pause. It writes a reason for every trade it takes, so you can check its behaviour against the checklist above, and it includes a combos & parlays desk and a Polymarket price cross-check.
Subscribe to DeskBot for Kalshi — $19.99/month →
Whatever tool you use, start at the smallest size you are comfortable losing. Past results don't guarantee future results.
FAQ
Does Kalshi have paper trading?
Kalshi offers a separate demo environment at demo.kalshi.co with mock funds, and a matching demo API. Kalshi notes that prices and behaviour in demo markets may not reflect real markets, so demo fills are not a good guide to live fills. Third-party tools can also simulate trades against live public Kalshi data.
Why did my Kalshi bot win on paper and lose live?
The most common reasons are that the paper engine filled at a better price than the live ask, ignored Kalshi's trading fee, assumed full fills on every order, or ran too few trades to separate skill from luck. Re-price the paper trades at the real ask plus fee and compare to the breakeven win rate.
What is the breakeven win rate on a Kalshi contract?
For a contract held to settlement, it is your entry price plus the fee per contract, divided by the $1.00 payout. Buying at 51¢ as a taker with a fee of about 1.75¢ needs about a 52.75% win rate to break even, before any other costs.
Does Kalshi charge a fee at settlement?
Kalshi's published fee schedule (effective July 7, 2026) states there is no settlement fee. You pay the trading fee when your order fills, and again if you sell before settlement.
Is the maker fee always better?
The maker fee is lower (0.0175 versus 0.07 in the formula), but resting orders do not always fill, and the ones that do fill are often the ones where the price moved against you. The fee saving can be smaller than the selection cost. Measure both with real fills.
How much does DeskBot cost?
DeskBot for Kalshi is $19.99/month for Windows or Intel Mac. Live trading uses your own Kalshi account and API key, and you set the limits.
Trading involves risk and you can lose money. DeskBot does not guarantee profits, returns, win rates or income. Fee figures are from Kalshi's published fee schedule as of October 2026; check kalshi.com for the current schedule. DeskBot is independent software, not affiliated with or endorsed by Kalshi or Polymarket.