Mispricd
Menu
The games · Kalshi · live

The numbers, and the price.

Every open Kalshi game market, read once an hour: what the market asks for each side, what the gematria numbers say about each name, the side our analysis leans to under one rule that uses both, fixed before the start and graded in public, and the margin and total the market's own ladders put at even money. Measurements, not financial advice.

loading the games…

Hypothetical results · the cents a contract after the fee in the tiles aboveThese results are based on simulated or hypothetical performance results that have certain inherent limitations. Unlike the results shown in an actual performance record, these results do not represent actual trading. Also, because these trades have not actually been executed, these results may have under- or over-compensated for the impact, if any, of certain market factors, such as lack of liquidity. Simulated or hypothetical trading programs in general are also subject to the fact that they are designed with the benefit of hindsight. No representation is being made that any account will or is likely to achieve profits or losses similar to these being shown.

The numbers were backtested on 22,990 games: see Symbols.

What this is, and is not

The numbers

The numbers. Each name Kalshi prints for a side is decoded in English Ordinal (A=1…Z=26), Full Reduction (digit-reduced), Reverse Ordinal (Z=1…A=26) and Reverse Reduction. A side scores when a value lands on one of the day's seven date numbers, on one of the decoding community's "hoax codes" (33, 111, 666 and the rest), when the name reads the same forwards and backwards, when its ordinal mirrors the opponent's reverse, or when its reduction runs three sixes. The side with the higher tally is the numbers side; a tie goes to the home side, which is the decoder's own rule and the reason this method tracks home advantage in the backtest. The scripted score is the date number nearest the sport's typical total, split by the tally gap. Over 22,990 games and 113 rules this was measured as noise, with the receipts on the symbols page. It is here because it is fun to look at next to the price.

The price

The price. The asks are Kalshi's, in cents, for the YES side of each team's market, read at the last pass. Implied home is the two asks normalised to sum to one; the overround is how far over one they summed before, which is what the book charges. Under each ask are American odds for one contract at that ask after Kalshi's fee, ceil(7 · p · (1 − p)) cents with p the ask as a fraction of $1: −150 is 150 paid to win 100, +150 is 100 paid to win 150. None of it is a forecast by the desk; it is the market's own number, published so it can be checked.

The model read

The model read. One rule, applied the same way to every game. When the market's favourite is at 60% or less the game is a toss-up and the numbers set the read. Over 60% the favourite is the model read, unless the numbers lean three or more against it or the two asks sum more than six cents over one, in which case the rule passes and says which. The model read and the line it was made at are fixed at the last hourly read before the start, which is the start Kalshi lists for the game wherever it lists one; after that the live prices keep moving on the price tab but the model read does not, because these markets trade in play and an in-play price has seen the score. When a game is postponed Kalshi carries the market over to the makeup game, played within about two days; once Kalshi lists the makeup start, the line is read again and the model read redone up to that start, and both are graded on that game.

The record

The record. When Kalshi settles a game the row settles with it, within about an hour: every hourly pass asks about each game two hours past its start. The numbers side is right when the side it favoured won. The price side is right when the side the line favoured won, which a fair line should manage about as often as its probability says. The model read is right when the side the rule named won; passes grade nobody. A game whose start used was late grades nothing. The start used is the one Kalshi lists for the game in its own schedule, else the ticker's own time where it carries one, else three hours before Kalshi's occurrence time, else the end of the game day. At first the desk did not read Kalshi's schedule, and the other three can be later than the real start; then the last hourly read before the start used may have seen play. So the desk checks each game as it settles: when its line was read at or after the start Kalshi lists for it, or, for a game Kalshi lists no start for, when Kalshi closed the market less than 2.5 hours after the start used (the NFL and college football), 2 hours (the NBA and the NHL) or 1.5 hours (every other sport), or, on any game, when Kalshi's own hourly prices show the market settled less than 1.5 hours after the start (a backstop for a start Kalshi lists that was itself late), the game shows as "not graded: the start used was late" and counts in no tally, in the day's record or in the opening against the line. A game Kalshi lists no start for, whose start used was late by less than a game's length less those hours, is not caught. A game called early can be flagged by the last check although its line was read before play: the record errs toward not grading. The corrections log says when this began and what it changed. All three tallies are on the record tab whichever way they fall, each with its 95% interval and its count. At the top of that tab sits the day's record: for each sport on the latest settled day (earlier days are a button away), how many favourites won against the number of wins the line implied, how many were 90c favourites, the Brier score of the line against an even split, the day's biggest surprise and its largest line move. Those rows are kept in a permanent table (games_record.sql) that outlives the 120 days the games themselves are kept for, and the same table feeds the opening line against the kickoff line: the Brier score of the first read against the last read before the start, by sport. Under them: a calibration table by price, which asks whether a favourite at the line wins as often as the line says, and is where the price can be shown to be wrong; the move between the desk's first read and the line, which is what a forecaster is actually measured on; and the rule evaluated against its own record — a coin test on the toss-ups, the favourites against what the line said, the passes against what a model read would have done. The rule is never tuned on the record. If a season says a threshold is wrong it changes once, in public, with a version number, and the old record stays. No order is placed anywhere and there is no order code; the source is agents/game_numbers.py and the table is games_schema.sql.

The margin and total

The margin and total. Kalshi also lists each game as two ladders: "wins by more than k points" and "over k points", at many k. Each hour the desk reads both and takes the median of each, the point where the market's chance crosses 50%, interpolated in a straight line between the two strikes either side of it: the margin (home minus away) and the total. Scores are whole points and strikes half points, so the market's own even point is the whole number between those strikes. The line is the last read before the start that gave a figure, and "opened" the first; the projected score splits the median total by the median margin. The spread nearest even is the strike whose two asks, normalised to one, come closest to an even chance, and a book more than 6c over a dollar is marked, as on the price tab. Once Kalshi settles a game and its final score (Kalshi's own game data) is in, each median is graded against it: the average miss, against calling every game even, and how often the final landed above the median, which a fair median does half the time. It is the market's projection, not the desk's. The source is agents/game_lines.py and the table is game_lines.sql.