KALSHI · KXBTC15M

Will Bitcoin close this window UP or DOWN?

--:--left
BTC VS TARGET
—
waiting for the market
UP—pays 100¢ if BTC closes at or above the target
DOWN—pays 100¢ if BTC closes below the target
market —model —

Range play

Buy DOWN at resistance, UP at support. Each price is what that side should cost if BTC gets there.
SUPPORT
RESISTANCE
—

This window

BTC, the target, and the range it can still reach before the close

Every ENTER, logged

—

Want the trades I'm actually taking?

Positions, entries and exits, posted live on Whop.

SEE MY POSITIONS →
root@quantboris:~$btc15m_KALSHI · KXBTC15M
—
—
—
SEE MY POSITIONS →
CLOSES IN
--:--
—
INDEX VS TARGET
—
—
MODEL SAYS
—
—
MODEL LEAN ?
—
—
REGIME
—
—
UP · YES
—
—
DOWN · NO
—
—
—
TUG OF WAR
—
DOWN
UP
MOM —
FLOW —
BTC momentum + Kalshi buying pressure, from −1 to +1 · ENTER fires when it is pinned past ±0.85
BRTI
—
KALSHI BOOK · UP—
——
——
—
RANGE—
———
LEVELPRICEAWAYHIT%UP NOWUP MID
HIT% = chance BTC touches it before the close · UP = what UP is worth if BTC is there now / halfway to the close

What this market is, and what these numbers do and do not mean

Kalshi series KXBTC15M — “Bitcoin price up down”. One market every 15 minutes, 96 a day.

THE CONTRACT

You are betting on whether Bitcoin finishes a 15-minute window above where it started. Both ends are measured on CF Benchmarks' BRTI — an order-book weighted index over Bitstamp, Coinbase, Kraken, Gemini, LMAX Digital, Bullish and Crypto.com. No single exchange is the index, and the last trade on Coinbase is not what settles this market.

Neither end is a single tick. Both are 60-second averages:

UP pays $1  iff  avg(BRTI, last 60s before close) ≥ avg(BRTI, last 60s before open)

The right-hand side is the target, already known at the open — it is just the previous window's settlement value. A tie pays UP. The taker fee is 7% × P × (1−P) rounded up to the cent: 1.75c a contract at 50c.

“IF THE MODEL SAYS 52 AND THE MARKET SAYS 49, WHY ISN'T THAT FREE MONEY?”

Because it is almost always the model that is wrong, not the market. This is the most important thing on this page, so it is worth being blunt about it.

The market mid is the output of a lot of people pricing the same contract, several of them with better volatility estimates, faster index feeds and lower latency than this app has. When a 3c gap appears, the overwhelmingly likely explanations are, in order:

1. The volatility estimate is stale. Fair value is Φ(z) and z divides by σ. A σ that is 20% too low near the money moves fair by several cents on its own. The EWMA here reacts to the last few minutes; it cannot know about the news release in ninety seconds that the market is already pricing.
2. The index is a step behind. Even on the real BRTI relay this app sees a 1 Hz print; the order flow has already moved.
3. The market knows something the model has no input for — a pending print, a large resting order about to be pulled, cross-venue flow.
4. The fee eats it. 1.75c a contract at mid-range prices is larger than most of these gaps before you even start.

And this model has not been calibrated against settled outcomes. Nobody has checked, over thousands of windows, whether things it calls 52c actually happen 52% of the time. Until that has been done, the gap is a research signal, not an edge.

So what is it good for? Two things. It tells you when the market has moved and the index has not, which is a different and more interesting event than either alone. And run backwards it gives IV/RV, which needs no view on direction at all.

WHY THE AVERAGING IS THE WHOLE MODEL

An average of the last minute wobbles less than the last tick. For a diffusion with per-second volatility σ, the variance still live in the settlement value at τ seconds out is σ²·(τ − 40), not σ²·τ — averaging hands you 40 seconds of certainty for free. Inside the final minute it goes further, because part of the settlement average has already printed: with m of the 60 ticks banked, Var ∝ ((60−m)/60)² · τ, collapsing roughly like τ³. That is why prices snap to 0 or 100 so hard at the end, and why a $30 spike in the last fifteen seconds barely moves the settlement value. The LOCKED tile tracks exactly this, using Kalshi's own tick count.

WHAT WAS TESTED, AND WHAT IT FOUND (2026-10-07)

Every setup on this screen was run against 28,037 settled windows (Feb 1 – Oct 7) before it was put here, with the rules written down in advance (kalshi_sr/setups/registry.py, 17 of them) so the result could not be tuned after the fact. All numbers are cents per contract, net of the taker fee, entering at the ask. The last 18 days were data no earlier analysis had ever loaded — the cleanest test, and the one that counts.

Range fadeBuy DOWN when BTC rallies into a zone, UP when it falls into one. Loses ~2.4¢, significantly, in every period and almost every month. Scalping it with a take-profit made it worse (−5 to −6¢) even though the take-profit hit 73% of the time: many small wins, a few full-size losses.
VWAPFading a 2σ stretch: +0.1¢ (no edge). Following a cross: −0.0¢ (no edge).
Tug of warThe one real effect. The market under-reacts to momentum and Kalshi flow — positive and significant in Feb–May, Jun–Sep and the fresh data separately. But it is worth ~0.6–1.0¢, and crossing the spread costs ~2¢, so following it loses ~1.5¢. Its best corner (strong tug, buy the favourite at 80–97¢, late in the window) is break-even at best: −0.8¢ and −1.0¢ out of sample.
Late clickFilling a few seconds late instead of at the quoted ask turned every rule into −6 to −12¢. Speed matters more than any setup here.

Why scalping cannot rescue an entry: a fairly priced contract's expected value does not change with when you exit — a take-profit only trades frequent small wins for rare large losses. Full write-up: kalshi_sr/docs/setups_verdict.md.

THE NEW PANELS

TUG OF WAR(tanh(momentum) + flow) / 2. Momentum = BTC's move over the last 3 minutes in units of its own volatility; flow = Kalshi volume signed by whether each minute's last trade ticked up or down. The dashed marks are ±0.5. ENTER lights up when the tug is pinned past ±0.85 with the favourite at 80–97¢ in minutes 7–13.
SETUPSEach tested rule, live: amber when it would fire right now and on which side, and next to it the number it measured — read from the research output files, never typed in. LOSES = the interval is entirely below zero; NO EDGE = it straddles zero.
S/R zonesHTF (B): 15m / 1h / 4h swing points plus yesterday's high and low, 2+ touches, drawn as bands. Intraday (A): 1m / 5m swings, 3+ touches, thin lines, off by default. Only the 3 nearest each way are drawn; "next resistance / support" says how far.
Trend linesThrough the last two falling swing highs and the last two rising swing lows. A drawing aid.
VWAPAnchored at 00:00 UTC on Coinbase, with ±2σ volume-weighted bands.
REPLAYStep back through settled windows (◀ ▶ or the arrow keys): BTC, the target, the settlement, and the UP price minute by minute underneath.
THEMEHeader button: TERM (default) or CLEAN. Remembered per browser.

THE COLOUR KEY

mintUP / good / the maker side that won. The house colour. UP prices, bid depth, the 60-second average line, a positive edge, the mint half of the settlement density.
clay roseDOWN. Deliberately quieter than the mint so a falling market does not shout. DOWN prices, ask depth, the losing half of the density.
amberThe target — the number this window has to beat. Also the dashed target line, the shaded last 60 seconds, the LOCKED meter and EMA 9.
violetThe model, and only the model: MODEL FAIR, MODEL − MARKET, the window-open marker, EMA 21 and Bollinger. Violet never means "good" — see below.
near-whiteThe index itself — BRTI, the thing that settles. The brightest line on the chart because it is the only one that decides anything.
greyStructure, labels, and the previous window. Anything the app is unsure about is grey rather than guessed.

MODEL − MARKET, AND WHY IT IS NOT GREEN

MODEL FAIR is what this app's own maths says UP is worth right now. MODEL − MARKET is that number minus what you would actually pay to cross the spread, after Kalshi's taker fee. Its sub-line reads e.g. DOWN at 58.0c +1c fee · model 62.5c: the side with the better number, the price you would pay, the fee on top, and what the model thinks that side is worth.

It is rendered in the model's violet and never in the mint that means "good" elsewhere on this page, because a positive number there is not a green light. It has been measured: over 2,471 settled windows the market's own quote beat this model on Brier score (0.1584 vs 0.1634), and taking the model's side whenever it disagreed by more than 3c lost 0.46c a contract after fees. When the model and the market disagree, the overwhelming favourite is that the model's volatility estimate is stale, not that the market is wrong. Read it as "the model and the market currently differ by this much", which is a fact, not as "there is this much edge", which is not.

THE CHART

FIXED vs 1m…1dFIXED is the 15-minute contract window on the real settlement index — the only view where the cone, the density and the model mean anything, because they are about this contract. Every other timeframe is an ordinary Coinbase BTC-USD chart for context, with EMA / Bollinger / RSI / MACD available under INDICATORS. The header always names which one you are looking at.
FAIR LADDERthe rail's second tab: what UP would be worth at each BTC level, now and at each later time to close. The row on the target is always exactly 50c, because at the target the contract is a coin flip whatever the clock says.
bright lineBRTI itself, relayed by Kalshi at 1 Hz — the thing that settles.
mint linethe trailing 60-second mean: what this window would settle at if it ended on this tick.
amber dashedthe target. Above it UP wins, below it DOWN wins.
the conethe 50 / 80 / 95% quantiles of where the index can go before the close, sized by realised volatility and by how much averaging still has to do. It narrows to exactly the settlement distribution at the right edge. The outer bands are allowed off screen — the scale follows the price, not the cone.
right-edge curvethat settlement distribution seen side-on, split at the target. The mint area is the fair probability — the picture and the number are one object.
dotted levelsthe heaviest spot wall each side that the index could still reach before this close. The SPOT DOM panel says how much is there and on which exchange.
amber stripthe last 60 seconds: the averaging minute that decides it.
grey path, leftthe previous window. Its own last minute is where this window's target came from.

SPOT DOM

BRTI is computed from resting bids and offers on its constituent exchanges, so the spot books are not context for the settlement price — they are the raw material of it. The ladder aggregates Coinbase, Kraken, Bitstamp and Gemini into price rungs and keeps them split by venue, because that split matters: size that is one exchange is one resting order that can be pulled in a second, while the same size spread across four is a level the whole market is defending.

CUM is the running total between the mid and that rung — how much has to trade for the index to get from here to there. Rung height scales with σ, so the ladder always covers roughly the reachable range: about $25 steps early in a window, $2 steps in the last minute. Distances are shown in σ for the same reason — $40 away is a wall with 30 seconds left and noise with twelve minutes left.

All seven constituents' public books (Coinbase, Kraken, Bitstamp, Gemini, Crypto.com, Bullish, LMAX), refreshed every few seconds. Nothing here reproduces CF Benchmarks' real weighting, and walls can be pulled at any moment.

THE TILES

Zstandard deviations between the expected settlement value and the target. Fair probability is Φ(z); everything else is commentary.
MOVE NEEDEDdollars the index must travel now to put the expected settlement value on the target. It grows inside the last minute, because only the unprinted ticks can still respond.
LOCKEDshare of the settlement average already printed, and the effective seconds of variance left.
WALL IN PLAYthe heaviest spot wall within 1.5σ, either side.
SPOT BAND ±1σtotal resting size within one sigma either way, and its imbalance — the “can it even get there” number.
FLOW 60ssize-weighted taker imbalance on Kalshi: who is crossing the spread, and which way.

WHAT THIS IS NOT

It is not advice, not a signal service, and not a backtested strategy. It is a read-only instrument panel: it cannot place an order, and there is no order placement anywhere in the code. When BRTI is unreachable it falls back to a weighted exchange blend, says BLEND on screen and warns in a banner — a fair value computed off a blend is a different claim from one computed off the settlement index. Independent tool, not affiliated with Kalshi or CF Benchmarks.

Esc or click anywhere to close.