Sardine tells you, for a live Kalshi crypto contract, how often
contracts in this exact situation (this far from the target, which Kalshi calls the strike, this much time left)
have actually settled Up (Yes, in Kalshi's words), and whether Kalshi's price is above or below that once
the fee is counted.
Everything on this page is an input to that sentence. The
board is the output.
What does the purple number mean?
The purple box in the figure — History: 66%
(n = 2,004) — is the answer Sardine gives. It reads: of the
past windows that sat this far from the strike with this long left, this
share settled YES, and this many windows were counted. It is a count of
what happened, not a forecast of what will. The rest of this section is
what the figure does not say, and the definitions behind it.
One thing the figure leaves out: since September we also record
every second of every live contract — both sides of the book,
depth, last trade. Kalshi's public API publishes only one-minute history,
so a second that passes un-recorded cannot be recovered from them
afterwards.
What doesn't Sardine claim?
Most tools in this category promise profit. Here is exactly where this one
stands, so you can decide what it's worth.
We are not better than the price. Kalshi's quote predicts settlement
slightly better than our count does. We measured it and say so.
A gap is not an edge. On most boards, contracts priced away from their
history have not gone on to pay. Each board says which it is.
The fee usually decides it. At 50¢ Kalshi's fee is 1.75 points while the
market is typically within 1 point of correct — so coin-flip contracts are the
hardest part of the board for anyone.
We refuse to answer outside the range we have data for, rather than
extrapolating a confident-looking number.
The figure: how the purple number is built
Everything above in one picture, for readers who want the mechanics. It is wide; on a phone it scrolls sideways, or download it as a PDF.
One row per distance bucket, one column per time-to-expiry bucket. The cell is
how often those windows settled YES, and the count behind it. This is the one
page where sigma, Wilson intervals, split-half and calibration error belong.
Columns are checkpoints, not ranges: the reading
taken when that many minutes were left, matched to the nearest quote within a
minute. "2 min left" is the last checkpoint Sardine answers at. Inside the final
two minutes it has no number, which is why the replay on the Live page shades that
zone and says Sardine stays quiet there.
Distance from target (sigma)
How far spot sat from the strike at that moment, divided by the volatility
estimate for the remaining time. It is what makes a 0.1% move with 2 minutes
left comparable to a 0.4% move with 15.
Wilson interval
The confidence interval on a settlement frequency. Used rather than the
textbook normal interval because it behaves near 0% and 100%, which is exactly
where these cells live.
Two window counts
The tables are built from the Kalshi windows that settled in the last 60 days
(the span is printed under each table). Sixty days, not the whole file, since
2026-10-26: the market's behaviour in the last two minutes of a window changed in
August 2026, and a table averaged over May-to-October described neither period;
the window is re-applied at every rebuild and the split-half gate re-run. The downloadable
history files hold only the windows for which Sardine also recorded its own
price path, which starts later, so their window count is smaller. Each page
quotes the count of the file it is built from and says which.
Strike-rows
One row per strike per window. Larger than the window count, because a single
window has many strikes. The headline sample size uses independent
windows, not strike-rows.
Calibration error
Worst out-of-sample gap between what the table said and what happened. It is
also the threshold the verdict uses: a price has to be further from history than
this before we call it priced above or below.
Split-half
The table is rebuilt on each calendar half of the data separately. If the two
halves disagree in sign, the result is treated as unstable.
How often has it been right?
Accuracy in the table below is the largest miss in any History bucket
holding 200 or more settled windows, re-measured against the table we are
serving every half hour. You can check it yourself: open
the published CSV, read the miss column, take the biggest number.
It describes how well the published figure has matched over every window we
hold, including the ones the table was built from — so it is a description,
not a forecast test.
A market has one of three statuses, and the table below says which is which
right now. Serving: its split-half calibration error is inside the 6-point
limit we set before looking. Serving under review: the latest rebuild put
it over the limit, so the counts stay up but the claim comes down — the error bar
becomes the measured miss, nothing on it is called an edge, and the Live page
says "under review" on the board. Held: too few priced windows to build a
table at all, so nothing is shown. We downgrade the claim rather than withdraw
the numbers, because a count you can check beats a blank.
About colour: Sardine's own number is always purple. Green and red words
appear only on markets where gaps of that size have historically paid (the
"Gaps sort returns" column). Everywhere else, including every market under
review, the words are grey and describe the gap without claiming anything about
what it pays.
What can I download?
Loading…
Everything above is derived from these files. They regenerate every half
hour, so nothing on this page is computed somewhere you cannot check.
CC BY 4.0.
Loading…
What does Sardine collect about me?
No accounts, no cookies, no advertising, nothing sold. One cookieless
analytics script, named on the privacy page.
What Sardine logs, in full —
it is a short page and it is specific.