# Kalshi Data + Execution Program — Plan For Param — Oct 24, 2026 Decision: BOTH together — better data + fast execution ## Honest starting point - No program changes the data ceiling by itself. Direction at 5:00 left is ~80-82% on public data; high-90s only in narrow, holdout-tested zones. - The program wins on 3 things: (1) reading data closer to what Kalshi actually settles on, (2) filling in milliseconds only at/under a price cap, (3) never taking a trade the rules say skip. ## How Kalshi trading actually works (verified Oct 24) - Market data (prices, orderbook, settlements) = PUBLIC, no key needed. This is what all current feeds use. - Placing orders = PRIVATE API. Param creates an API key in his Kalshi account (Account & Security -> API Keys). Since Oct 1, 2026 the default is an Ed25519 key (RSA still offered). Each order request is signed with the private key. The private key is shown ONCE — it must go into secure storage, never into chat, never into a plain file. - Kalshi has a FREE demo environment (demo.kalshi.co) with fake money. We build and test everything there first. Zero risk until demo results are proven. - WebSocket (live orderbook streaming) also needs the API key, even for public channels. - Fees: taker fee = 0.07 x price x (1 - price) per contract. ~1.75c at 50c, ~0.63c at 90c, ~0.33c at 95c. Maker (resting limit) orders are free on most 15m series. The bot must subtract the fee before deciding a price is cheap — a 98.7% fair No at a 99c ask is still a losing buy. ## Architecture (4 parts, all in one program) 1. DATA ENGINE — every second, not every minute - Kalshi WebSocket: orderbook depth, spread, last trades for the live window - Spot tick feeds from the settlement constituents: Coinbase / Kraken / Bitstamp for crypto (CF Benchmarks inputs); for FX, Yahoo now, Pyth when/if paid (see costs) - Self-records orderbook history — Kalshi sells NO historical depth, so every day we don't record is data lost forever 2. SIGNAL ENGINE — Param's own tested tables only - GBP: own direction anchor + EUR/AUD with = plus, CAD/JPY opposite = dollar confirm, full house 90.7% at 4:00 (Main.xlsx); EUR+AUD both against = NO TRADE; tiny lead <$0.00005 = skip - Crypto Leader: coin x place official tables (5,844 windows). WILL NOT WIN (No on 5th): 97.9% at 5L, 99.3% at 3L; BTC 5th 99.7%, HYPE 5th only 95.9% = dangerous, extra caution / skip unless stacked (5th at 6L AND 5L + gap) = 98.7-99.4% - ETH filter: |move| >= $7 + lead-side 90-95c at 6:00 held 98.4-99.0% - Every signal carries its holdout % and its price cap. No cap = no trade. 3. EXECUTION ENGINE - At the mark (6:00 / 5:00 / 3:00 left): check signal -> check live ask vs cap minus fee -> place limit order in milliseconds -> confirm fill -> log it - Hard aborts: signal older than a few seconds, spread too wide, price above cap, market closed / no market, balance below size - Kill switch + daily loss stop + max trades/day, set by Param (see resources) 4. GRADING ENGINE - Every demo and live trade graded vs Kalshi's official result, RIGHT / WRONG, tiny vs real loss (FX within $0.00011 of strike = coin-flip finish, not a model miss) - Post-result audit after every WRONG, per Param's standing protocol. Rules change only on evidence (25+ new windows), never off one loss. ## Build phases - PHASE 0 — DEMO (free, starts as soon as Param creates a demo API key) Build data + signal + execution on the demo account. Paper-trade at least 50-100 qualifying windows. Deliverable: demo scorecard — hit rate, avg fill price vs cap, fee cost, skipped-trade count. - PHASE 1 — DATA UPGRADE (only if Phase 0 proves execution works) Add second-by-second orderbook recording + tick spot. Decide Pyth then: $2,500/mo G10 FX (from Oct 22 verified research) is real money — do NOT pay it before demo results justify it. Crypto data upgrade is free (exchange APIs), so crypto goes first. - PHASE 2 — LIVE, SMALL Live API key, smallest size Param sets, one market only (recommendation: Crypto Leader WILL NOT WIN — highest tested hit rate, 24/7 market, clearest caps). Add a second market only after 50+ live graded trades match the demo scorecard. - PHASE 3 — SCALE Only on proven live numbers: raise size, add GBP/USD, add ETH filter. ## Resources Param needs to give 1. Kalshi API key — create DEMO key first (kalshi demo account -> API Keys). Store via the secure entry Muse provides. Never paste the private key in chat. 2. Three numbers: (a) starting size per trade, (b) max trades per day, (c) daily loss stop that halts the bot. 3. First market pick (or accept the Crypto Leader recommendation). 4. Later, only if justified: budget decision on Pyth ($2,500/mo) and/or a small VPS (~$5-20/mo) if 24/7 hosting off this VM is wanted. ## Phase 0 all-info upgrade (Oct 24, ~2:11 AM — Param: 'use all the information we have on Muse') Audited the paper bot against everything in Muse and wired in the two things it was missing: - BEST-RECORD pricing: the bot no longer takes only the feed's one printed label. At 5:00 left it also applies the leader-gap tiers from the full loser study (rerun and verified on all 5,841 official windows: gap ≥0.05/0.10/0.15/0.20/0.30% → No hits 98.1/98.5/98.8/99.0/99.5%) and uses the highest measured record that applies. Gap tiers never override the HYPE caution (no strong pick on HYPE at 5:00/6:00 left — it climbs out too often), and no gap tiers were measured at 3:00 left, so 3:00 keeps its printed record only. - LIVE ORDERBOOK DEPTH: before a paper trade, the bot reads the pick's actual Kalshi orderbook. If nobody is offering No (empty YES-bid side — common for the losing coin), depth is 0 and the trade is a SKIP ('orderbook too thin'), not a fake fill at a quoted price. If depth is positive but under the $10 size, the paper fill is cut to what the book actually holds. Checked and NOT added, honestly: the 'never led 14→5' rule (98.4% — below the stacked records the bot already uses, and it would need a full-path fetch at a timing-critical mark); the second 200-day Leader book (different method, overlapping windows — merging would double-count; the Crypto5 book stays the single graded source); Main.xlsx / FX / BTC / Gold / Copper tables (different markets — they do not price Crypto Leader, and the bot does not pretend they do). ## What this program will NOT do - No guaranteed wins, no 100% claims. Zones are holdout-measured probabilities. - No trade without a tested rule + a price cap + size/stop limits set by Param. - No live money until the demo scorecard is delivered and Param says go.