Your TerminalTo-Beat Markets

Public desk · Above-or-below events

To-Beat Markets

A to-beat market asks one question: will an asset be above one number at one instant? Kalshi publishes that number — the price to beat — as a structured field on every window, and on the 15-minute crypto series the number to beat is the previous window’s own settlement value, so a run of settled windows reads as a continuous open-and-close tape.

Each bar below is a body and nothing else: it opens at the number to beat and closes at the value the venue settled the window on. There is no high, no low and no wick anywhere on this desk, because no intra-window range exists at this settlement basis under a licence this site can hold — that refusal, and four others, are published in full further down. Nothing here is a forecast, a ranking or a recommendation, and nothing on this page is for sale.

Measured 2026-09-09 on 1,000 consecutive settled KXBTC15M windows (251.75 hours, one request to the venue’s free unauthenticated feed): the window threshold equalled the previous window’s settlement value on 997 of 998 contiguous pairs. That is the fact this desk rests on, and it is reported as counts rather than as a badge.

The live windows

Every series observed producing 15-minute above-or-below events, in registry order. A series is listed here only after it was seen emitting windows — a Kalshi series can hold a real catalog record and have produced no event ever, returning a valid empty page a lazy loader would ship as a permanently blank tile.

4 live series · plot shows newest 96 windows

BTC · 15-minute windows

Bitcoin

Open the window record

The window running now

reading the open window…

settled record to 2026-10-05 20:15Z · 15-minute windows

Prev. to beat

85,729.81

Contract term

Settled

85,679.51

Venue settlement outcome

Resolved

No

Venue settlement flag

85,00085,50086,00086,50087,00010-04 20:3010-05 08:2210-05 20:15bar: to beat (contract term) → settled (venue outcome) · no high, no low

Each bar runs from the number to beat to the value the window settled at, coloured by the sign of the difference. There is no wick because there is no high and no low at this settlement basis.

Windows held
8,515
Span
2026-07-07 22:45Z to 2026-10-05 20:15Z
Gaps drawn open
0
Threshold chain
998 of 998 pairs

Chain measured over the newest 1,000 of 8,515 windows held · gaps over the 96 drawn

newest 24 · up settled above · down below · dashed gap

P(yes | prev yes) 0.4922 (n=510) · P(yes | prev no) 0.5266 (n=488) · mean run 1.93 vs a fair coin’s 2.00

ETH · 15-minute windows

Ether

Open the window record

The window running now

reading the open window…

settled record to 2026-10-05 20:15Z · 15-minute windows

Prev. to beat

2,708.66

Contract term

Settled

2,707.29

Venue settlement outcome

Resolved

No

Venue settlement flag

2,6902,7002,7102,7202,7302,74010-04 20:3010-05 08:2210-05 20:15bar: to beat (contract term) → settled (venue outcome) · no high, no low

Each bar runs from the number to beat to the value the window settled at, coloured by the sign of the difference. There is no wick because there is no high and no low at this settlement basis.

Windows held
8,512
Span
2026-07-07 22:45Z to 2026-10-05 20:15Z
Gaps drawn open
0
Threshold chain
998 of 998 pairs

Chain measured over the newest 1,000 of 8,512 windows held · gaps over the 96 drawn

newest 24 · up settled above · down below · dashed gap

P(yes | prev yes) 0.4872 (n=507) · P(yes | prev no) 0.5275 (n=491) · mean run 1.92 vs a fair coin’s 2.00

SOL · 15-minute windows

Solana

Open the window record

The window running now

reading the open window…

settled record to 2026-10-05 20:15Z · 15-minute windows

Prev. to beat

120.2302

Contract term

Settled

120.1852

Venue settlement outcome

Resolved

No

Venue settlement flag

119.00119.50120.00120.50121.00121.50122.0010-04 20:3010-05 08:2210-05 20:15bar: to beat (contract term) → settled (venue outcome) · no high, no low

Each bar runs from the number to beat to the value the window settled at, coloured by the sign of the difference. There is no wick because there is no high and no low at this settlement basis.

Windows held
8,514
Span
2026-07-07 22:45Z to 2026-10-05 20:15Z
Gaps drawn open
0
Threshold chain
998 of 998 pairs

Chain measured over the newest 1,000 of 8,514 windows held · gaps over the 96 drawn

newest 24 · up settled above · down below · dashed gap

P(yes | prev yes) 0.4694 (n=507) · P(yes | prev no) 0.5479 (n=491) · mean run 1.85 vs a fair coin’s 2.00

DOGE · 15-minute windows

Dogecoin

Open the window record

The window running now

reading the open window…

settled record to 2026-10-05 20:15Z · 15-minute windows

Prev. to beat

0.095432

Contract term

Settled

0.0957214

Venue settlement outcome

Resolved

Yes

Venue settlement flag

0.09400.09450.09500.09550.09600.09650.097010-04 20:3010-05 08:2210-05 20:15bar: to beat (contract term) → settled (venue outcome) · no high, no low

Each bar runs from the number to beat to the value the window settled at, coloured by the sign of the difference. There is no wick because there is no high and no low at this settlement basis.

Windows held
8,498
Span
2026-07-07 22:45Z to 2026-10-05 20:15Z
Gaps drawn open
0
Threshold chain
99 of 997 pairs

Chain measured over the newest 1,000 of 8,498 windows held · gaps over the 96 drawn

newest 24 · up settled above · down below · dashed gap

P(yes | prev yes) 0.4603 (n=504) · P(yes | prev no) 0.5517 (n=493) · mean run 1.83 vs a fair coin’s 2.00

Counterevidence · Published with the history

The run of outcomes carries no predictive information about the next window

The resolution history above is honest as history — those windows really did settle that way — and it is worthless as a forecast. This desk measured that rather than asserting it, and the measurement ships here, at the same size as the picture it qualifies, because hiding it would be hiding counterevidence. Every rate below carries its own n; a rate with no denominator is printed as withheld rather than as a zero.

Reference measurement, 1,000 consecutive settled KXBTC15M windows, 2026-09-09: P(yes | previous yes) 0.4804 against P(yes | previous no) 0.4922 — 1.2 points LOWER after a yes, the opposite direction from the one a continuation story needs. Mean run 1.98 against a fair coin’s exactly 2.00. Run histogram {1:245, 2:140, 3:57, 4:36, 5:14, 6:10, 7:2, 8:2}, longest run 8. A coin is the null hypothesis and the coin wins.

Conditional resolution rates per series, each with its own sample size
SeriesResolved nYes / NoP(yes | prev yes)P(yes | prev no)Mean runLongest runRun lengths
BTC1,000510 / 4900.4922 (n=510)0.5266 (n=488)1.93 vs 2.00161:271 · 2:134 · 3:58 · 4:33 · 5:10 · 6:2 · 7:4 · 9:2 · 10:2 · 11:1 · 16:1
ETH1,000508 / 4920.4872 (n=507)0.5275 (n=491)1.92 vs 2.00161:268 · 2:131 · 3:74 · 4:29 · 5:8 · 6:4 · 7:2 · 8:1 · 9:1 · 10:1 · 11:1 · 16:1
SOL1,000508 / 4920.4694 (n=507)0.5479 (n=491)1.85 vs 2.0091:298 · 2:132 · 3:50 · 4:34 · 5:15 · 6:6 · 7:1 · 8:2 · 9:2
DOGE1,000507 / 4930.4603 (n=504)0.5517 (n=493)1.83 vs 2.0081:299 · 2:131 · 3:66 · 4:27 · 5:15 · 6:6 · 7:2 · 8:1
Realized move against the threshold, in basis points, by series
Seriesp5p25p50p75p95n
BTC−24.8−6.4+0.2+6.8+25.61,000
ETH−29.7−7.9+0.2+8.5+28.81,000
SOL−43.1−12.8+0.3+14.2+41.91,000
DOGE−48.6−16.0+0.3+17.7+49.31,000

Basis points of the threshold, so a $26 move on bitcoin and a $0.002 move on dogecoin are the same distance. Reference figures over the 1,000-window KXBTC15M sample, 2026-09-09: p5 −26.0, p25 −8.6, p50 −0.6, p75 +8.8, p95 +26.2. A conditional rate is computed only over contiguous pairs — two windows either side of a gap are not consecutive observations, and counting them as such would fabricate an adjacency the venue never published.

WET-LOGIC §19 · Labelled and separate

Four kinds of number share this screen

Two of them are the same magnitude in the same currency one line apart, and the difference between them is the difference between a promise and an observation. They stay labelled here because an unlabelled pair is one number printed twice.

On the pageMeasure classWhat it is
To beatContract termA term of the contract. Nobody observed it; it never moved. When the open window cannot be read, the last settled window’s number appears in its place labelled “Prev. to beat” — the same measure class, a different contest.
SettledVenue settlement outcomeA measurement of the world — what the settlement index averaged at the strike instant.
ResolvedVenue settlement flagThe venue’s own settlement of its own contract.
Not published hereMarket-derived probabilityA contract price. This desk publishes none, so none is labelled on a card.

Measure class notes

Contract term
The number to beat is a term of the contract, not an observation of the market: the venue published it when the window opened and it never moved. On the 15-minute crypto series it is the previous window's settlement value, which is what lets a run of these read as a tape.
Venue settlement outcome
The settled value is a measurement of the world — the 60-second average of the settlement index taken at the strike instant, published by the venue after the fact. It is the only number here that says what the asset actually did.
Venue settlement flag
Yes or no is the venue’s own settlement of the contract, not our comparison of the two numbers beside it. We do run that comparison, and a row where the three disagree is refused rather than shown.
Market-derived probability
A contract price is the market’s probability for the question, in cents on a dollar of payout. It is never a price of the asset: 62¢ on "above 78,204.69" does not mean bitcoin is at 62.
Withheld
Withheld means the number does not exist yet, or was sent in a form this desk could not read. It prints as a word rather than as a blank or a zero, because a blank is indistinguishable from an outage and a zero is a claim.

Settlement basis

What actually decides these windows

Each window settles on a named, published index rather than on a venue’s own print. That is the reason these series qualify for this desk and the 15-minute S&P 500 and oil records in the same catalog do not — those declare their settlement source as the literal string “For example, Google Finance”, and an example is not a methodology.

  • KXBTC15M

    Bitcoin

    CF Benchmarks real-time index · BRTI

  • KXETH15M

    Ether

    CF Benchmarks real-time index

  • KXSOL15M

    Solana

    CF Benchmarks real-time index

  • KXDOGE15M

    Dogecoin

    CF Benchmarks real-time index

The specific index code is printed only where it was read out of a live settlement rule at the venue. Only bitcoin’s was; the others follow CF Benchmarks’ own naming convention and are shown without a code rather than as a name this desk has never seen the venue assert.

“While checking a source like Google or Coinbase may help guide your decision, the price used to determine this market is based on CF Benchmarks' corresponding Real Time Index (RTI).”
Kalshi, secondary settlement rules on the 15-minute crypto series · read 2026-09-09

Those are the venue’s words, not ours. W.E.T. is not an exchange, operates no order flow, and adds no price feed of its own: every number on this desk is either a term of a contract or a settled outcome the venue published.

Refusals · Published, not filed

What this desk will not draw

On a desk built out of a 15-minute above-or-below window, almost everything a reader instinctively reaches for is something we do not have. Each one below is answered with the measurement behind it and the date that measurement was taken, because a refusal without a number ages into folklore and somebody eventually “fixes” it.

“Show me the high and the low inside each window.”

no-intra-window-range

There is no high and no low ON THIS DESK, and the reason is a licence WET has not bought rather than a fact about the world. The 15-minute crypto windows settle on a CF Benchmarks real-time index — an order-book-derived value published about once a second, a stream rather than a bar — so an intra-window range would have to be constructed from data no free source permits us to store or display. Every FREE door is closed, and they are closed for different reasons. Several PAID doors are open and the gate below names their prices — but read it before reaching for a card: the ones with published prices license TRADE data, which is a different quantity from the basis these contracts settle on, and the two doors that would actually settle the question publish no fee at all. Until one is signed, what this desk draws is a BODY-ONLY BAR: open is the number to beat, close is the realized settlement value, and the colour is the sign of the difference. Every pixel of that is a published venue number. `components/indices/IndexPriceChart.tsx:16-22` is the standing precedent for why the missing pieces are not simply filled with the pieces we have: "Feeding o=h=l=c to a candle renderer would draw a row of doji, and a doji is a CLAIM." So is a wick.

Measured 2026-09-10: Twenty-five sources surveyed against their own published terms, 2026-09-10. NOTHING is available free: Coinbase forbids redistributing or DISPLAYING the data and separately forbids using it to create "indexes, fixings, or other benchmarks"; Binance.US forbids "public display" of anything obtained through its API; Gemini permits personal and internal use only and requires a Redistribution Agreement; Kraken licenses its content "only for your own benefit"; and CF Benchmarks — the actual settlement basis, and Kraken-owned — requires a licence to use or distribute at all and publishes no fee. Pyth is explicit at the tier level: its free plan grants "No display, non-display, or redistribution rights". Alpaca is the one free keyless crypto-bar endpoint and it fails twice over: its terms allow the data "exclusively for personal and noncommercial access", and the bars are drawn from Alpaca's own venue, which returned n=0 trades on every 1-minute bar sampled — moving OHLC over zero volume. No exchange REST endpoint surveyed serves sub-minute bars either, so a genuinely smooth candle needs websocket aggregation, which is a derived work and a harder licence rather than an easier one.

Retires when

A licence is signed AT THE SETTLEMENT BASIS. That is the real bar and it is stated first, because the cheap licences do not clear it: these contracts settle on the CF Benchmarks order-book mid, so a candle built from any exchange TRADE feed is a different quantity and would sometimes draw a body crossing the threshold on a window the venue settled the other way. Two things clear it — a CF Benchmarks licence, or a written data authorization from Kalshi, whose API already carries the BRTI value feed at 5Hz to entitled accounts. THE KALSHI PATH ALSO NEEDS A DOCTRINE CHANGE and not just a signature: that feed requires API-key signing, which `scripts/doctrine-verify.ts` bans in CI. A lesser bar retires only the DISPLAY question, and five surveyed sources grant that much — not one of them cleanly. CoinAPI publishes the plainest permission — its FAQ answers "Can I use the API to show graphs, charts or tables?" with "Yes, you can use our data to display graphs, charts, or tables", and it markets benchmark creation — from USD 79 a month, but its Customer Agreement licenses the service "for your internal business purposes only" and never once uses the word display, so that right has to be written into the order form before a chart ships on it. Bitstamp grants display AND "the right to create ratios, calculations, new original works, statistics" in published terms, at a quote-only fee. Kaiko sells a named display licence, and Amberdata grants display to a subscriber's own users plus dashboards and rankings — both quote-only, and both now one company. Tiingo is the trap: it publishes a display price (USD 250 startup, USD 500 enterprise) while its section 1.4(h) forbids "publishing or otherwise making available to the public any analysis" and forbids benchmarking, and its section 1.6(c) names CHARTS as a prohibited derived product. Any of those buys a LICENSED TRADE CANDLE, which is a real thing to draw and is not the thing this desk publishes. If one is ever drawn here it will be labelled with its own basis and shown BESIDE the settlement bar rather than instead of it. NONE OF THIS IS A PURCHASING PLAN. A gate names the threshold that would retire a refusal; it is not a statement that WET is buying anything, and a vendor appearing here is a measurement of that vendor's published terms rather than a recommendation.

“What is bitcoin trading at right now?”

no-live-underlying-price

This desk adds no spot feed and never claims to be one. Every number on it is a published fact about a CONTRACT rather than about the asset: a term of the contract, a settled venue outcome, or the venue's own quote for the claim. That third one is the exception worth naming, because this entry used to deny it: the card headed "the window running now" prints the mid of the venue's bid and ask as a percentage, labelled a market-derived probability (WET-LOGIC §19). It is a price for the QUESTION, not a price for bitcoin, and it is not this desk's forecast. The nearest thing to "now" here is the OPEN window's threshold, read from the venue and printed under "To beat". That is a term of the contract that is running: fixed for the whole window, and NOT the asset's price — the asset moves continuously against it and this desk shows none of that movement. Rendering the threshold as a live price would be the same defect as a wick, one field further along. (Until 2026-09-10 this slot held the newest SETTLED window's threshold, up to fifteen minutes old. It now reads the open window directly and expires the number at the venue's own close instant.) `lib/scanners/refusals.ts` already publishes this refusal as `crypto-spot` for the alert builder. That entry remains true and is NOT superseded by anything on this desk.

Structural — nothing on a roadmap retires this.

“It has been yes four windows in a row — is the next one likely yes?”

run-not-predictive

No, and this desk measured that rather than asserting it. The resolution history is honest AS HISTORY — those windows really did settle that way — and it carries no predictive information about the next one. The conditional rate after a yes is 1.2 points LOWER than the rate after a no, which is the opposite direction from the one a continuation story needs, and the mean run is very slightly SHORTER than a fair coin's. Those figures ship on the surface beside the run itself, with their n, which is why the run is shown at all: hiding it would be hiding a real record, and showing it without the measurement would be publishing a suggestion. This desk prints no direction, ranks nothing, and recommends nothing.

Measured 2026-09-09: 1,000 consecutive settled KXBTC15M windows (251.75 hours): P(yes | previous yes) 0.4804 against P(yes | previous no) 0.4922; mean run 1.98 against a fair coin's exactly 2.00; run histogram {1:245, 2:140, 3:57, 4:36, 5:14, 6:10, 7:2, 8:2}, longest run 8.

Structural — nothing on a roadmap retires this.

“Show me a year of these windows.”

history-depth-wall

It does not exist to fetch. The venue's archive of settled 15-minute windows is walled at roughly 60 days, and past the wall the API does not error — it returns HTTP 200 with an empty page, which is the failure mode a loader silently renders as "quiet market". Depth beyond the wall can only accrue from the day WET starts persisting windows, one day at a time, and until then an empty store publishes THIS SENTENCE rather than a blank chart or a "no history" label.

Measured 2026-09-09: max_close_ts 60 days back returns a full page; at 90 and at 150 days the same request returns 200 with ZERO rows. One request at limit=1000 covers 251.75 hours (10.5 days); limit=100 covers 24.75 hours, so an hourly capture has about 24x slack.

Retires when

the stored window history reaches the depth the question asks for. Two milestones, and only the second one answers "show me a year": at roughly 60 days from first capture the store is deeper than the venue itself, which is when this desk stops being limited by the archive; a year takes a year. Stated as two because retiring the refusal at the first milestone would answer a question nobody asked. This one retires by the calendar rather than by a build — one day per day, with nothing to build and nothing to buy.

“Is the tape unbroken?”

tape-not-gap-free

No, and the breaks are drawn as breaks. Windows go missing at the venue, and a renderer that joined the rows either side of a hole would draw price action across a span nobody observed — the same fabrication as a wick, in a different direction. A missing window therefore emits an explicit null and the line breaks. `lib/indices/intraday.ts:30-36` is the estate's standing rule for this: renderers break the line, they do not bridge it. The statistics obey the same rule — a pair of outcomes either side of a hole is not a consecutive observation and is excluded from every conditional rate.

Measured 2026-09-09: a real 135-minute hole — eight missing consecutive windows — exists in a single 10.5-day span of the measured KXBTC15M sample.

Structural — nothing on a roadmap retires this.

“Add silver.”

silver-absent

The venue does not list it. `GET /series/KXSILVER` returns 404 — there is no silver series to read, at any cadence. The only silver exposure in the catalog is an annual gold-to-silver ratio market, and `annual` is not one of the cadences this desk reads (`cadence.ts`): a once-a-year threshold is not a short-dated window and one resolution is not a tape.

Measured 2026-09-09: GET /series/KXSILVER -> 404; the sole silver-bearing market in the catalog is an annual ratio market.

Retires when

Kalshi PRODUCES EVENTS on a silver series at one of the cadences this desk reads — fifteen-minute, hourly, daily or weekly — settling on a named continuous index. Events, not a listing, and the distinction is this register's own: `unnamed-settlement-source` below refuses two series that ARE listed and have produced zero events ever, calling them "catalog records rather than markets". A gate satisfied by a catalog record would retire on exactly the state another entry disqualifies. An annual gold-to-silver ratio market does not clear the bar however long it runs either: one resolution a year is not a tape, and this desk would have nothing to draw.

“Then add gold — Kalshi has gold.”

gold-dormant

Two independent reasons, and the second one outlives a fix to the first. (1) The series is dormant: zero open events, and the newest settled event is from October 2022. (2) Gold settles on the LBMA London auction fix, which prints TWICE A DAY — so at the two cadences this desk actually lists, fifteen-minute and hourly, there is no instant to be above or below and no tape to draw. SCOPED TO THOSE TWO CADENCES ON PURPOSE: `cadence.ts` also names daily and weekly, and a twice-daily fix genuinely could settle a daily window — so the broader version of this sentence, the one that would rule out a twice-daily basis at every cadence, is a categorical claim this desk's own vocabulary contradicts and is deliberately not written here in any form. What is true is narrower and still decisive for what exists today: nothing at any cadence is listed, and reviving the series at a sub-daily one is arithmetically impossible against a twice-daily basis. This is a settlement-basis refusal wearing an inventory refusal's clothes.

Measured 2026-09-09: Kalshi gold: 0 open events, newest settled event October 2022, settlement source the LBMA twice-daily London auction fix.

Retires when

Kalshi PRODUCES EVENTS on a gold series whose settlement basis and cadence are compatible — a continuous published index at any cadence, or the existing twice-daily auction fix at the daily or weekly cadence, where a fix genuinely can settle a window. Events rather than a listing, for the reason `silver-absent` gives. Reviving the dormant series AT A SUB-DAILY CADENCE is not enough and is deliberately not the bar: no amount of activity makes a twice-daily basis settle a fifteen-minute window.

“There are 15-minute S&P 500 and oil series in the catalog — list those.”

unnamed-settlement-source

Both are catalog records rather than markets, and both would fail the settlement test even if they were not. KXINX15M (S&P 500) and WTIH (WTI oil) have produced zero events, ever — the shape `cadence.ts` warns about, where a series returns a valid 200 and an empty array that a lazy loader ships as a permanently blank tile. And each declares its settlement source as the literal string "For example, Google Finance". An example is not a methodology. A window tape needs a named, published, auditable settling authority, which is the whole reason the crypto series qualify and these do not.

Measured 2026-09-09: KXINX15M and WTIH: 0 open events and 0 settled events ever; settlement source declared as the literal string "For example, Google Finance".

Structural — nothing on a roadmap retires this.