# Kalshi 15-Minute Bots: The Math Every Bot Has to Beat, Tested on 2,710 Bitcoin Windows

*By Benny Ricciardi, FSWA Award Winner · Published Author · Ran 4Deep Sports · Led FTN Marketing · Traded Bonds on Wall Street — The 7 Oracles at PredictionMarketsPicks*

Most Kalshi 15-minute bot ideas are one of three trades. We tested all three on five weeks of Bitcoin data: two lost after fees, one broke on settlement.

- Source: https://predictionmarketspicks.com/articles/kalshi-15-minute-bots-fee-math
- Published: 2026-09-28
- Updated: 2026-09-28

---

The short answer
  We ran the three most common 15-minute bot ideas against five weeks of Kalshi Bitcoin windows. **None of them held up.** Buying 95–99¢ favorites with 90 seconds left lost 0.22¢ a contract. Trading our own fair-value model lost 1.36¢. Arbitraging Polymarket's international venue broke on exactly the close finishes it's meant to be safe on. The prices were fair; the fee and the spread did the rest.

Search "Kalshi bot" and you'll find a lot of code: repositories that poll the 15-minute markets, bots for sale, and threads about a friend of a friend who's printing money. Most of the ideas come down to three trades. Before you run one, here's what each of them would have done on Kalshi's Bitcoin 15-minute markets from Aug. 29 to Sept. 27, 2026, fills and fees included.

## First, what every bot is up against

**The price is fair.** Across 2,764 graded windows, every 10-cent price band won within about one point of its price: 8.1¢ contracts won 8.6% of the time, 46.2¢ won 45.8%, 91.9¢ won 91.4% ([the full test](https://predictionmarketspicks.com/articles/is-kalshi-bitcoin-rigged)). There's no lazy mispricing to scoop up.

**The fee is at the fill, win or lose.** Kalshi's taker fee is 7% × price × (1 − price) per contract:

| Contract price | Taker fee per contract | As a share of the price |
|---|---|---|
| 50¢ | 1.75¢ | 3.5% |
| 90¢ | 0.63¢ | 0.7% |
| 97¢ | about 0.20¢ | 0.2% |

Trade in and out of a window and you pay it twice. Run any size through the [Kalshi fee calculator](https://predictionmarketspicks.com/tools/kalshi-fee-calculator).

**The spread is real.** With five minutes left in a window, the Bitcoin book's median spread was 1¢. A bot that crosses it to get filled gives that up on every trade, before the fee.

## Bot 1: buy the late favorite

**The idea:** with a minute or two left, the side priced 95¢ or more almost always wins. Buy it, collect the few cents.

**What happened:** we took every window where the favorite's midpoint was 95–99¢ closest to 90 seconds before the close, and bought it at the ask.

| | Result |
|---|---|
| Windows | 807 |
| Won | 97.8%, at an average midpoint of 97.8¢ |
| Per contract, before fees | −0.07¢ |
| Per contract, after fees | **−0.22¢** |

It won almost every time and still lost. The favorite wins about as often as its midpoint says, so paying the ask on top of that is a small loss, and the fee makes it a bigger one. It also means sitting in the final minute, when the 60-second settlement average is mostly locked in and the fastest traders are repricing faster than any retail bot can.

## Bot 2: trade a fair-value model

**The idea:** estimate the true odds from where Bitcoin sits against the target, how much time is left and how fast it's moving, then buy whichever side the model says is cheap.

**What happened:** our own [Bitcoin 15-minute model](https://predictionmarketspicks.com/tools/bitcoin-edge-15m) does exactly that. We took its reading with five minutes left in each window and traded whenever it disagreed with the market's midpoint by more than 3 points, taking the ask or the bid.

| | Result |
|---|---|
| Windows graded | 2,710 |
| Trades (model vs. price gap above 3 points) | 1,571 |
| Per contract, before fees | −0.30¢ |
| Per contract, after fees | **−1.36¢** |
| Brier score, market price | 0.1269 |
| Brier score, model | 0.1326 (worse) |

The market's own price was the better forecast (a lower Brier score is better), so trading against it lost money before the fee did anything. A better model could do better. But the bar isn't "beat a coin flip." It's "beat a price that is already fair, by more than the fee and the spread."

## Bot 3: arbitrage another venue

**The idea:** Polymarket also lists 15-minute Bitcoin markets. When the two prices disagree, buy "up" on one and "down" on the other and lock in the gap.

**What happened:** Polymarket's international venue settles on a Chainlink 60-second average, not the CF Benchmarks index Kalshi uses. Across 663 identical windows from Sept. 21 to Sept. 27, 2026, the two settled opposite ways four times. Every one was a window Kalshi's settle decided by $5.10 or less: 3 of the 30 windows decided by under $5 split between the venues ([the same-window test](https://predictionmarketspicks.com/articles/kalshi-vs-polymarket-15-minute-crypto-markets)). On a split, both legs of your "arbitrage" can lose. Polymarket US settles on the same index as Kalshi, but it's a separate order book that publishes no volume, so the depth to fill both legs isn't there to measure.

## If you build one anyway

- **Read by series, not the whole exchange.** `GET /trade-api/v2/markets?series_ticker=KXBTC15M&status=open` returns the open window. Querying every open market returns thousands of rows you don't want.
- **Know the fields.** `floor_strike` is the target, locked at the open. `close_time` is the close. On settled markets, `result` and `expiration_value` tell you what happened. Event tickers end in the Eastern close time: `KXBTC15M-26SEP271945` closes at 7:45 PM ET.
- **Go easy on the API.** Kalshi drops some 15-minute reads under heavy parallel load. Read a few series at a time and retry.
- **Price the fee into every signal,** at the price you'll actually fill, and count it twice if you'll exit early.
- **Grade yourself on profit, not win rate.** Bot 1 won 97.8% of the time and lost money.
- **Size small.** The [Kelly calculator](https://predictionmarketspicks.com/tools/kelly) will tell you that with no edge, the right size is zero.

Every series has a ticker-named page with the same builder notes, starting with [Ethereum (KXETH15M)](https://predictionmarketspicks.com/kalshi/15-minute-markets/ethereum), all on the [Kalshi 15-minute markets board](https://predictionmarketspicks.com/kalshi/15-minute-markets). How the 15-minute contract stacks up against Kalshi's hourly, daily and perp clocks: [which Kalshi clock fits your view](https://predictionmarketspicks.com/articles/kalshi-15-minute-vs-hourly-vs-daily-vs-perps).

  How we measured
  **Data:** PredictionMarketsPicks' own capture of Kalshi's KXBTC15M order book, graded on Kalshi's published results, for windows closing Aug. 29–Sept. 27, 2026. **Bot 1:** the observation closest to 90 seconds before the close (within 20 seconds), favorite's midpoint 95–99¢, bought at the ask (or the NO side at 100¢ minus the bid). **Bot 2:** the model's fair value and the book at the first observation with five minutes or less left in each window (2,710 graded windows); a trade when fair value and midpoint differed by more than 3 points, filled at the touch. **Fees:** 7% × price × (1 − price) per contract, not rounded, one fill per trade, held to settlement. **Bot 3:** the same-window test described in our Kalshi vs. Polymarket comparison. Results are per contract, not guarantees. No bot advice; trade responsibly.

---

## Disclosure

PredictionMarketsPicks publishes analysis of CFTC-regulated event contracts. Nothing here is financial advice and every position carries risk.

Links to Kalshi, DraftKings, FanDuel, Fanatics, Polymarket in this article are referral links marked "sponsored" — we may be paid if you open an account. It costs you nothing and never changes what the model says.
