We can't find the internet
Attempting to reconnect
Something went wrong!
Hang in there while we get back on track
/ Track Record
Live record • real money since 2026-08-30 • fees as charged • paper history retained below
Season 1 — all time
Live Results — real money
first live order — · updates every 10 minActual Kalshi orders, deliberately small: live trading runs under graduated per-order size caps (stage 0 starts at $0.25/order) that only loosen with accumulated evidence — see the methodology below. Realized PnL counts settled positions only, net of exchange fees.
By Strategy — live
| strategy | horizon | positions | W–L | open | fees | net pnl |
|---|
Paper history (simulated) — retained
the simulated record before live trading began 2026-08-30 · fees & slippage modeled · nothing omitted
| strategy (paper) | positions | W–L | open | fees | net pnl |
|---|---|---|---|---|---|
| daily_bell | 1441 | 972–469 | 0 | $22.62 | $815.67 |
| momentum_fifteen | 8967 | 3955–5012 | 0 | $44.04 | $438.87 |
| range_fade | 1886 | 1050–836 | 0 | $22.04 | $44.77 |
| pair_divergence | 1375 | 561–814 | 0 | $4.58 | $33.41 |
| box_arb | 3402 | 1414–1988 | 0 | $59.29 | $32.95 |
| cross_lead_follow | 350 | 206–144 | 0 | $1.73 | $24.62 |
| flow_follower | 1511 | 724–787 | 0 | $4.74 | $15.28 |
| book_imbalance | 473 | 205–268 | 0 | $3.25 | $10.93 |
| calibration_consensus | 53 | 24–29 | 0 | $0.26 | $3.77 |
| whale_follow | 43 | 18–24 | 1 | $0.80 | $2.72 |
| venue_brier_divergence | 174 | 85–89 | 0 | $0.44 | $2.04 |
| realized_range_reversion | 69 | 16–53 | 0 | $0.65 | $1.88 |
| overshoot_fade | 9 | 7–2 | 0 | $0.18 | $1.70 |
| microprice_skew_maker | 60 | 15–45 | 0 | $0.13 | $1.17 |
| venue_maker | 3 | 3–0 | 0 | $0.02 | $0.77 |
| post_print_favorite | 4 | 4–0 | 0 | $0.05 | $0.54 |
| longshot_fade | 38 | 37–1 | 0 | $0.33 | $0.18 |
| strike_arb | 12 | 4–8 | 0 | $0.18 | $0.10 |
| event_vol_crush | 3 | 1–2 | 0 | $0.06 | $0.06 |
| macro_release | 1 | 0–0 | 1 | $0.02 | $0.03 |
| alt_follower | 78 | 37–41 | 0 | $0.38 | $-0.62 |
| weather_rain | 278 | 57–221 | 0 | $5.64 | $-0.90 |
| fed_structure | 4 | 0–4 | 0 | $0.08 | $-1.01 |
| tape_surge | 72 | 21–47 | 4 | $1.35 | $-1.32 |
| cross_venue_lag | 80 | 38–42 | 0 | $0.86 | $-1.42 |
| ensemble_meta | 7 | 0–7 | 0 | $0.03 | $-1.48 |
| group_arb | 8 | 1–4 | 3 | $0.18 | $-2.91 |
| crypto_seasonality | 327 | 95–232 | 0 | $3.31 | $-3.11 |
| daily_ladder_vol | 125 | 37–88 | 0 | $2.93 | $-3.23 |
| canary | 40 | 6–34 | 0 | $0.74 | $-3.78 |
| ladder_arb | 30 | 0–30 | 0 | $0.61 | $-4.09 |
| new_market_scanner | 51 | 7–44 | 0 | $1.27 | $-4.52 |
| crypto_threshold | 30 | 1–26 | 3 | $1.48 | $-7.46 |
| maker_quoter | 88 | 23–63 | 2 | $1.23 | $-7.96 |
| five_min_drift | 1066 | 90–976 | 0 | $5.09 | $-8.97 |
| favorite_backer | 42 | 27–15 | 0 | $0.71 | $-9.98 |
| calendar_arb | 238 | 7–229 | 2 | $2.55 | $-11.69 |
| conditional_probability | 1544 | 340–1204 | 0 | $14.06 | $-13.61 |
| daily_ladder_edge | 121 | 59–62 | 0 | $7.38 | $-16.44 |
| implied_range_vol | 692 | 149–543 | 0 | $6.45 | $-19.45 |
| vol_richcheap | 571 | 190–381 | 0 | $6.77 | $-20.93 |
| model_maverick | 446 | 74–372 | 0 | $0.66 | $-21.65 |
| neighbor_no | 326 | 182–144 | 0 | $3.71 | $-22.01 |
| candle_prob_mispricing | 812 | 136–676 | 0 | $7.49 | $-22.97 |
| spread_harvester | 307 | 102–205 | 0 | $4.27 | $-24.58 |
| post_move_expansion | 250 | 9–241 | 0 | $4.55 | $-24.77 |
| closing_bell | 170 | 53–117 | 0 | $2.98 | $-29.42 |
| range_compression | 355 | 4–351 | 0 | $6.25 | $-30.10 |
| weather_edge | 211 | 33–178 | 0 | $6.47 | $-37.39 |
| hourly_range_sniper | 255 | 61–194 | 0 | $6.59 | $-48.18 |
Live trading began 2026-08-30; paper record retained above.
Data quality notes
Known gaps in the inputs behind this window · nothing omitted
The position and P&L record on this page — orders, fills, settlements, daily equity — was not lost or altered by any incident below. Figures that are derived from a model of market data (fill probabilities, execution scorecards, tape-driven signals) were computed on incomplete inputs during these windows and may differ from the same figure recomputed today. Each gap lists exactly what it did and did not touch.
2026-09-05 → 2026-09-22 Public trade tape missing backfilled
The public trade tape (every print on Kalshi) was not being stored. From about 2026-09-05 the exchange silently rejected our websocket trade subscription, and from 2026-09-09 to 2026-09-22 every database write of the tape failed while the system reported itself connected. No alert fired for 13 days.
- Paper maker fills: resting maker entries fill off the tape, so with no prints they converted to taker fallbacks (paying the modeled taker fee) more often than a live tape would have produced — a fee-heavier bias, not a flattering one
- Fill-model fill probabilities (fitted on the starved window)
- Executor scorecard and maker-quality markouts
- Tape-driven strategies (flow_follower, tape_surge, whale_follow) saw no flow and emitted few or no signals in the window
- Deep-replay verdicts and enable-clock snapshots computed while the window was open
- Orders, fills, settlements and daily equity snapshots — the position and P&L record itself was never lost or altered
- The hash-chained daily ledger
- Fees modeled on every fill
- Strategies that trade off the order book or external data rather than the tape
Remediation. On 2026-09-23 a REST backfill restored the tape for 2026-09-05..2026-09-23 (the earliest days may remain thinner than a live feed). Model fits, verdicts and scorecards computed on the starved window are re-run on the restored tape; paper fills booked during the window are kept exactly as they happened and are not rewritten. Tape volume and capture-rate monitors now alert on a lossy day. Post-mortem: docs/INCIDENT_2026-09_TAPE.md.
2026-09-17 → 2026-09-21 Order-book snapshots paused not recoverable
A disk-space guard mis-read the database volume size (config said 25 GB, the volume is 100 GB) and paused order-book snapshot writes as a precaution.
- Book-based research studies (queue validation, touch imbalance, book replay) over these days
- Orders, fills, settlements and daily equity snapshots
- Live top-of-book used for pricing and paper execution (in memory, never paused)
- The public trade tape
Remediation. The guard now reads the real volume size and never pauses writes on a provably wrong figure. Order-book snapshots cannot be reconstructed after the fact, so these days stay missing from book-based studies and are marked as such.
2026-08-30 → 2026-08-30 Live trading began 2026-08-30 live
Nothing was missing. From 2026-08-30 the headline figures on /performance, /performance/record and each /methodology page are the LIVE ledger — actual Kalshi orders, fills and settlements, fees as charged. The simulated (paper) record accumulated before that date is retained in its own labelled section and is never merged into the live figures.
- Headline totals, by-strategy table and equity curve — live ledger from this date
- Per-strategy methodology records — live where the strategy has traded real money
- The paper history (simulated) — retained, labelled, unchanged
- The hash-chained daily ledger — rows from this date count live fills; earlier rows stay as recorded
Remediation. Disclosure only: live trading began 2026-08-30; paper record retained above.
From analytics to trading edge
Paper only · deep-replay evidence is a backtest, not live money
The research layer measures where prediction-market prices disagree with the historical record — candle-settlement probabilities, calendar and volatility-regime conditioning, and implied-vs-realized range. When a measurement looks like a real edge it becomes a candidate strategy, and before it trades a cent it is deep-validated on the warehouse archive: replayed against every settled market the archive still holds (not just the shallow two-week live tail), scored net of the same modeled fees and slippage as everything else here. Only edges that clear a pre-committed enable bar — an adequately powered resolved sample, positive net PnL, and a positive per-trade edge — are turned on, and they turn on to paper, not live. Four have cleared so far.
Buys YES on any open hourly range bucket whose historical settle-rate beats the ask by enough to clear fees — the general candle-probability scanner.
Scores a joint day-of-week × hour × volatility-regime settle distribution against the ask, backing off to thinner marginals when a cell is sparse.
Reads the hourly ladder as an implied range distribution and trades it against the empirical one — the central bucket when vol is priced rich, the cheap wings when cheap.
Prices each daily "greater" ladder strike from ~1yr of measured multi-hour moves (no sqrt-time) and takes the strikes the ladder under- or over-rates. Enabled at the min_edge 15 bar.
The left figure in each pair is a backtest — a deep replay over historical settled markets, with the model's inherent limitations — and is the evidence that justified enabling the edge. The right figure is the live paper record accumulated since the edge was enabled (resolved positions only, fees included). A freshly enabled edge starts with a thin live-paper sample; that is expected, and shown as it is.
The discipline — what we don't enable
Rigorous testing means most candidates never trade
Enabling is the exception, not the default. Several researched candidates stay disabled because deep replay found no fee-clearing edge: a signed up/down bet (directional_drift) that the study reads as a coin flip failing split-half validation; a cross-horizon vol trade (vol_term_structure) whose edge was thin, non-monotone and unstable; a confirmation-gated drift (multi_timeframe_confirm) that trimmed trades without adding edge; and a 5-minute momentum trade (five_min_drift) that could not beat the $100-bucket spread plus fees. They keep their methodology pages and stay under measurement — nothing is quietly deleted.
Path to real money
An enabled edge trades on paper first, building a live-comparable record. To be promoted to a real-money pilot it must clear a fixed gate: at least 40 resolved paper positions, positive realized PnL, a recent drawdown inside the risk cap, at least 7 days of paper runtime, and a green system go-live readiness check. Promotion is never automatic — the gate only files a recommendation; a human flips the switch, and readiness is re-checked at that moment.
A promoted pilot starts under a $0.25 per-order cap that only loosens as real, settled live results accumulate — a drawdown auto-halt and kill switch sit behind it the whole way. The Live Results panel above reports every real-money fill; the four analytics edges on this page remain on paper.
Today's Movers (24h P&L)
Calibration by Category
gap = predicted − realized| Economics | 71 signals | p̂ 0.5 → 0.25 | +0.25 |
| Climate and Weather | 576 signals | p̂ 0.42 → 0.18 | +0.238 |
| Crypto | 27758 signals | p̂ 0.63 → 0.39 | +0.237 |
| Sports | 684 signals | p̂ 0.57 → 0.34 | +0.229 |
| Politics | 18 signals | p̂ 0.41 → 0.28 | +0.132 |
| Unknown | 39 signals | p̂ 0.82 → 0.74 | +0.075 |
Recent Signals (unabridged)
Risk Simulation (90-day Monte Carlo)
2,000 bootstrap paths resampling 75 measured daily fee-inclusive P&L deltas over 90 days on the $100 simulated bankroll. Assumes the future resembles the measured past — it may not.
Methodology
- Every signal each strategy emits is recorded before execution — rejected, expired, and unfilled signals stay in the record. Nothing is deleted retroactively.
- Paper fills model real execution: maker entries post at the bid and may not fill (taker fallback after a timeout), taker entries cross the spread, 1¢ slippage, and Kalshi's taker fee formula ⌈0.07 · C · P · (1−P)⌉ applied per fill.
- "Net PnL (marked)" = realized settlements + open positions marked to the last traded price, minus all modeled fees. Sharpe/Sortino annualize hourly fee-inclusive equity deltas.
- Each strategy draws from an allocated slice of one simulated $100 account; risk caps ($2/order, $20 total live exposure) bind live orders separately.
Get the Signal Feed
Every signal on this page is available in real time as a JSON feed and Discord alerts — identical content for every subscriber, with the same fee-inclusive honesty as this track record. Access is token-based and currently granted by request while the live track record accumulates.