Kalshi implied probabilities → normalized event signals → equity joins. Research alt-data for prediction markets — not a trading bot.
cd ~/Develop/kalshi-research source .venv/bin/activate pip install -e ".[dev]" ln -sf ../weather-arb/.env .env kalshi-archive --series KXFEDDECISION kalshi-build-research
Produces ~/.kalshi-research/data/research/fed_decisions.parquet with Kalshi probs joined to SPY, TLT, and KRE returns.
kalshi-archive --core-macro (KXFEDDECISION, KXCPI, KXCPICORE, KXGDP)kalshi-export-panel --series KXFEDDECISIONkalshi-build-daily-panel --series KXFEDDECISION (rerun after each archive for Δprob)kalshi-archive --portfolio (auth via weather-arb credentials)kalshi-list-series --core-macro or --macro-only| Command | Purpose |
|---|---|
kalshi-list-series | Discover series; use --core-macro or --macro-only |
kalshi-archive | Archive markets (--series, --core-macro) and/or portfolio |
kalshi-export-panel | Latest archive → flat CSV panel |
kalshi-build-daily-panel | Append snapshot → rolling daily.parquet |
kalshi-build-research | Fed MVP: Kalshi + SPY/TLT/KRE event study parquet |
pytest | 9 tests: normalize, snapshots, event study, ontology |
~/.kalshi-research/data/ markets/KXFEDDECISION/*.json # raw + normalized rows panels/KXFEDDECISION/daily.parquet panels/KXFEDDECISION.csv # from export-panel research/fed_decisions.parquet # MVP research dataset research/fed_decisions.csv portfolio/fills_latest.json
import pandas as pd
df = pd.read_parquet("~/.kalshi-research/data/research/fed_decisions.parquet")
resolved = df[df["resolved"].notna()]
print(resolved[["event_ticker", "contract_ticker", "prob_yes", "surprise", "spy_ret_1d"]])
From your local build of fed_decisions.parquet (snapshot: Jun 10, 2026).
| Contract | P(YES) T-1 | Resolved | Surprise | SPY 0d | SPY 1d | TLT 1d | KRE 1d |
|---|
| Contract | Event date | P(YES) now | Resolved |
|---|
Kalshi has ~173 Companies series and ~96 KPI brackets — closer to single-name fundamentals than macro Fed markets.
| Vertical | Example series | Equity / BBG | Settlement | Status |
|---|---|---|---|---|
| KPI brackets | KXTSLA, KXABNB, KXSPOTIFYMAU |
TSLA, ABNB, SPOT US Equity | Fiscal.ai | Next MVP |
| Earnings mentions | KXEARNINGSMENTIONAAPL |
AAPL US Equity → ERN | Bloomberg | Next MVP |
| Corporate catalysts | KXAAPLCEOCHANGE, KXACQANNOUNCE* |
Single-name event study | News wires | Planned |
| Macro (built) | KXFEDDECISION |
SPY, TLT, KRE | Kalshi | Live |
ERN / EE / BQL estimate fields via a
bbg_ticker bridge layer (not built yet).
finmap/bloomberg_bridge.yaml — series → BBG tickerbbg_tickerkalshi_core/ dumb REST client, models, archival, candlesticks pm_research/ prob panels, daily snapshots, calibration metrics finmap/ ontology, equity joins, event study, export scripts/ CLI entry points