STZ Astra
Decision Desk · Certa ex incertisFortis Fortuna Adiuvat
Password is verified server-side; the session cookie expires after 24h.
STZ AstraCerta ex incertisFortis Fortuna Adiuvat
Total Book · $15k
$15,000
3 books · realized —
Backtest · hand-run sim, NOT auto-traded
$5k · —
BTC 15m · live-paper
$5k · —
Platform Book · live-paper
$5k · —
Open positions
across 3 books
--:--:-- ET
CIRCUIT · CLEAR

Control Center

Live health of the auto-trading desk — P&L across every portfolio, the automated jobs, and start/stop control for each book, each vertical, or everything at once.

Portfolios & Auto-Trading

start/stop each book or a single vertical
PortfolioRealized P&LOpenSettledStatusControl
Loading…

Automated Jobs

last run & health per cron
JobLast runAgeDurationStatus
No job runs recorded yet.

Recommendations

Model edges ranked by net-of-fee expected value across every live vertical (crypto, macro, weather, baseball, MMA, soccer). Sizes are Kelly-fraction suggestions. The Platform Book and BTC 15m engines auto-trade these in paper; you can still stage any row by hand.

Live Edges
awaiting sweep
Best Net Edge
no qualifying edge
Suggested Deploy
$0
0 stage-ready
Avg Confidence
cold-start dampened

Edge Blotter · sorted by Net Edge ↓

Match Market Selection pmodel pmkt Gross Net Edge Conf Size · Kelly Kickoff Actions
Loading recommendations…

Live / In-Play

What the desk is in right now, across every traded vertical — each open lot marked to the live Kalshi mid (paper, live and manual books). In-play soccer cards re-price off the score state when a match is running.

0 OPEN

Open Lots — marked live

every open position across the books, at the current Kalshi mid
VerticalMarketEntryMarkQtyStakeUnreal P&LBook
Loading live board…

In-Play (soccer)

live model vs Kalshi when a match is running
No matches in play.

Live Edges

sized in-play recs across winner / totals / spread / BTTS — priced off the live score matrix
MatchMarketModelMkt mid Net edgeStake
No live edges — nothing in play, or no market diverges from the live model.

Positions / Portfolio

Live exposure across the auto-traded books (Platform verticals + BTC 15m), marked to current Kalshi mid. Entries are placed automatically by each book's executor behind its edge floor and kill switch; per-vertical exposure caps are enforced by the executor. Start/stop any book or vertical from the Control Center.

Total Exposure
$0
budget $500
Open Stakes
$0
at entry cost
Largest Position
$0
Positions
0

Open Positions

marked 38s ago
MatchMarketSelection StakeEntryMark QtyUnreal. P&L%
Loading positions…

Exposure by Match

vs $2,000 per-match cap
⚑ No open exposure.

By Market Type

% of total exposure
$0 DEPLOYED
Headroom · 100%

Bet Log

Full audit trail of staged, filled, and resolved bets with fees and realized P&L, across all verticals and the auto-traded books.

Cumulative P&L
+$2,000
since 11 Jun · ROI +4.0%
Win Rate
61%
14 W / 9 L · n=23
Avg Edge Captured
+3.8%
vs +4.6% modeled
Brier Score
0.214
small sample · unstable

Cumulative P&L

realized · tournament to date
+$2.0k $0

Bet History

— records
SettledMatchMarketSelection EdgeStakeFillFees OutcomeP&L
Loading bet log…

Long-Horizon Markets

Multi-day and season-length markets (championship & round-qualifier futures, Fed-decision and CPI horizons) priced from the same models as the live board, held to a 5pt edge floor plus a confidence haircut. The FIFA World Cup 2026 bracket Monte Carlo that first populated this board has concluded; long-horizon edges now come from the macro and sport verticals as those markets list.

AWAITING SWEEP

Futures Edges

updated by the twice-daily futures cron
MarketTierSideModelKalshi MidNet EdgeConfStake
No long-horizon edges right now — the futures cron runs twice a day and posts here when a multi-day market clears the edge floor.

Cross-Venue

The same FOMC contract priced on Kalshi and Polymarket, compared at executable prices — buy at the ask, sell at the bid, minus Kalshi's quadratic fee. Measurement only: nothing here places or sizes a trade. Read the Size column first: an edge of a fraction of a cent is noise on $70 and a finding on $2,000, and both order books are walked level by level to tell them apart.

Post-friction gap over time

best and average net edge per measurement pass

Paired contracts

latest pass
ContractDirection KalshiPolymarket GrossNet of feeMid gap CapitalProfit · return
Loading…

Calibration

Do model probabilities match observed frequencies? Each vertical now carries its own calibration ladder — a young book stays uncalibrated until it has resolved enough of its own markets. The live per-vertical state is shown honestly below, not a single blended number.

PER-VERTICAL LADDER
How the ladder works. Every vertical starts at identity (raw model probs, Kelly dampened to 0.25×), promotes to a logit calibrator once it has ~100 resolved markets, then to isotonic at ~500 — each promotion is walk-forward Brier-guarded, so a calibrator that would hurt out-of-sample is rejected and the vertical falls back a rung. Counts below are that vertical's own resolved predictions.

Per-Vertical Calibration

ladder tier · resolved sample · next promotion
VerticalLadder tierResolvedOpenBrier m/mktTo next rungSizing
Loading calibration state…

Paper vs Live drift

is real-money execution tracking the model as well as the paper shadow? (needs settled live bets)
VerticalPaper nPaper BrierLive nLive BrierDrift (live−paper)
No vertical has settled LIVE bets yet — drift appears once real-money lots resolve.

Reliability — live

resolved predictions vs observed frequency, per vertical
Loading reliability data…

Verticals

Non-World-Cup surfaces (crypto strikes, tennis, MLB, Fed/macro, global events). Each carries its own calibration ladder and stays paper-only behind the 5pt skepticism floor until its log matures. Disabled verticals are surfaced here but do not sweep.

PAPER · STAGED ROLLOUT

Platform Book · $5k paper

separate auto-traded book (enter-and-hold); each vertical calibrates independently
VerticalOpenOpen stakeSettledRealized P&LKill switch
Loading book…

Open Positions

every held-to-settlement lot across all verticals
PlacedVerticalMarket / sideEntryContractsStakeModel pEdgeSettles

Settled & History

every resolved lot with realized P&L
Settled lots and full per-vertical counts live in the History tab, so this view stays focused on what's live.

Watchlist

surfaced, not staked — no anchor or zero confidence
MarketVerticalQuestion / side p0posteriornews LRrationale
No watchlist rows — enable a vertical or wait for the next sweep.

Parlays

Correlation-aware multi-leg combos priced off the joint distribution, not the product of leg odds — same-event legs are correlated, so our fair value diverges from the crowd's independence assumption, and that gap is the edge. Surfaced across the live verticals; a combo is auto-traded by the book only when its net-of-fee edge clears the floor (until then it's shown here as watch-only). Books are thin until near event time.

MODEL FAIR · SAME-MATCH

Same-Match Combos

correlation-aware joint fair value vs Kalshi's packaged price
MatchLegs Joint fairNaïveCorr Δ Mkt midNet edge
No parlay scan yet — run the parlays job or wait for the next refresh.

BTC 15m Auto-Trader

Paper auto-trader on Kalshi's KXBTC15M ("BTC up in the next 15 minutes?"). Every window: price fair P(up) from realized vol → trade only when the net-of-fee edge clears the skepticism floor → a 15s monitor cashes out overshoots, stops out collapses, or adds on re-emerged edge → settle, learn, repeat. Live execution stays off until the readiness verdict earns it.

PAPER · LEARNING

Current Window

next scan on the :01/:16/:31/:46 cron
No scan yet — waiting for the first 15m job cycle.

Open Position

15s monitor: cash-out / stop / add-on
No open position.

Tape

15s ticks · spot / unrealized P&L / cash-out margin · gaps = no position
LIVE

Model Learning

calibration ladder · policy counterfactuals · live-readiness

Ledger Stats

exact full-ledger aggregates (DuckDB/Parquet) · by exit type
Cumulative realized P&L · daily
Exit typeLotsWinsLossesRealized P&L
No settled windows yet.

Trades

newest first · running P&L
PlacedWindowSide EntryContractsStake ResultP&LRunning
No settled trades yet.

Research

Free-feed evidence (headlines + RSS) for each upcoming event across the news verticals (MLB · MLS · UFC), condensed by one Claude Haiku call into an aggregate likelihood ratio. Everything is auditable — the raw LR, the sources, and the news-implied nudge. Top 50 current signals; older ones live under Historical.

NEWS SIGNALS

Current Signals

top 50 · sorted by news materiality
No research signals cached yet. The news cron researches each upcoming MLB/MLS/UFC event once the vertical recs are live; signals appear here after the next run.
Historical — older computed signals
Expand to load the research history.

Live Book

Real money only — every number on this screen is the live ledger. The paper desk is elsewhere; here a dollar is a dollar.

Tuition book

micro-stake learning book — maker-only, loss-capped, graded on consensus-close CLV, never P&L

History

Every settled Platform-Book lot across all verticals, with realized P&L. Counts, win rate, Brier and per-vertical totals are computed exactly over the full ledger (DuckDB/Parquet), so they stay correct however long the list grows; the list itself is a browsable, filterable window. (BTC 15m keeps its own settled history on its view.)

SETTLED ARCHIVE

Cumulative Realized P&L

daily, full ledger

By Vertical

settled record & realized P&L per vertical (full history)
VerticalSettledWonLostWin %Realized P&L
No settled lots yet.

Settled Positions

newest first
PlacedVerticalMarket / sideEntryStakeResultP&L
Loading…

Endgame

Paper book, measurement only. In-play favorites in the final stretch — MLB from the 8th inning (API-Sports), soccer from the 80th minute (API-Football live) — bought at the ask when it sits between 80¢ and 97¢ on a book no wider than 10¢, one fixed $50 lot per game, settled from Kalshi's own result. The backtest (docs/ENDGAME_STUDY_20260902.md) paid the candle ask without walking the book; the Depth columns are the point of this page: contracts resting at the ask when the decision was made, and whether the lot would have filled. The parlay shadow pairs consecutive lots into 2-leg tickets at the product of their prices.

Lots

newest first
Placed (UTC)GameSideClock AskSpreadContracts Depth @askWithin 2¢Fillable StatusP&L
Loading…

Lottery Picks PRIVATE

High-asymmetry small caps — names where a 10x within 2–10 years is at least arithmetically coherent. Ranked by room and fuel, not by probability. Never emailed, never on the public site.

Read this first

what this list is

Base rate: only a few percent of US listed names 10x within a decade, and small caps with these traits fail far more often than they compound. Treat every row as a lottery ticket sized to be written off in full.

How it screens
Hard refusals do most of the work: cap above the ceiling (10x must land at a real company), dilution >10% TTM (our strongest measured negative signal), growth that cannot cover a 10x inside 2–10 years at a conservative read (the lower of quarterly and TTM), or too illiquid to exit. What survives is ranked on headroom, growth, gross margin, cash survival and how little coverage it carries.
What it is not
Not a prediction, not a probability, and not a target price. “Must be true” on each row states the fundamental move a 10x actually requires, and each name carries a full research note — setup, bull case, caveats, and what to verify by hand.

Candidates

TickerPriceCap@10xYrsRev GMSharesCovScore
Loading…

Help & Platform Guide

What STZ Astra does, what every screen means, and how the auto-traded books run. Concise by design — each panel covers one part of the platform.

What STZ Astra is

overview

A single-user desk running six separate surfaces. Only the first one ever places an order; the others are decision support and always will be. The Control Center is your landing — P&L across every portfolio, job health, and start/stop for each book, each vertical, or everything at once. Nothing arms real money without an explicit go-live. The crypto vertical went LIVE 2026-08-14 ($1,000 bankroll · $15 lots · −$300 auto-revert breaker); its fills show on the real-money-only Live Book screen. The Real Book (research page) tracks the owner's actual brokerage fills — owner-only, no subscriber surface reads it.

1 · Event-market auto-trading
Kalshi prediction markets. Astra builds a probability model per event across twelve verticals — crypto strikes, BTC 15m, macro (Fed / CPI), weather, baseball, tennis, MMA, soccer, cricket, events, index strikes and golf — prices every listed market from it, and ranks mispricings by net-of-fee edge. Three paper engines trade automatically: the high-frequency BTC 15m loop, the enter-and-hold Platform Book, and the longshot Parlay Book. BTC 15m is currently stood down (paused for cost); mlb, ufc, soccer and weather are halted after the 2026-08-04 review.
2 · Stock Research
Its own surface, wholly separate from the trading engine and sharing no code path with it. Ranks a 494-name universe nightly and publishes the STZ AI tip email and scorecard to double-opt-in subscribers. It never trades, and it never will. Its own panel below covers it in full.
3 · Index Levels
A daily mechanical read of the index complex — pivots, moving-average stack, 52-week range, and what SPX/VIX options are pricing — mailed each weekday morning to a hand-maintained list kept separate from the tip subscribers.
4 · Lottery Picks & Metrics Reference
Owner-only research: the private 10x-candidate screen (session-gated, never published anywhere) and the formula shelf behind the model's metrics.
5 · Cross-Venue
Measurement only — tracks the same contract on Kalshi vs Polymarket and logs the gap. No model, no orders.

Data feeds & API keys

what's configured in this deployment — names only, never values

Loading feed inventory…

Control Center

the landing — monitor & kill switch
KPIs
Live P&L across portfolios (Platform + BTC 15m), each book's realized total, and how many automated jobs are healthy.
Portfolios
Per-book P&L and status, with Stop/Start for the Platform book, each vertical (indented), and BTC 15m — independently.
STOP ALL
The master kill switch halts every engine at once (both books). Open positions keep settling; no new entries fire until you restart.
Go live (per vertical)
Real money. Each vertical has its own Go live — password re-entry + typed LIVE + the exact override phrase. Live runs a small shared bankroll ($500) with a −$100 auto-revert breaker; the paper book keeps trading in parallel so learning never pauses. To paper is one typed confirm.
Automated Jobs
Each cron's last run, age, duration and health — ok / stale / failed (stale = past 2× its expected cadence).
Live Book view
A real-money-only screen (sidebar, Live Book $): realized P&L, breaker runway to the −$100 auto-revert, cumulative curve, every live fill, and live-vs-paper entry slippage per lot. Real-book arming still happens in the Control Center; the Tuition book arms from its own panel on this screen.
Tuition book (v192)
A micro-stake live learning book for verticals that FAIL the arming gate — an owner-decided tuition budget spent to learn execution, never an arming. $3 maker-only lots, one per match, max 6 open, hard $100 realized-loss cap that auto-disarms. Fills land in the live ledger tagged tier T and are split out of every real-book number. Graded ONLY on CLV vs the consensus close — the verdict counter on its panel fills at 30 graded lots: mean > 0 consider widening, ≤ 0 halt. Arm with typed TUITION; disarm is one click.
Consensus-close CLV (v192)
Kalshi markets trade to resolution, so "CLV vs the venue close" just re-measures the win rate (measured: winners drift +0.115, losers −0.080 by 3h). Consensus-anchored verticals (soccer/mlb/ufc/tennis/cricket) therefore benchmark every settling lot against the last pre-close de-vigged bookmaker consensus (clv_consensus) — the sharp's process metric, and the ONLY number the tuition book is graded on. The venue-close clv remains for crypto, which has no consensus close.

Where the books stand

ledger review 2026-08-21 · crypto armed 2026-08-14
crypto is LIVE, but has NOT proven an edge
The 08-13 "cleared every gate" read did not survive an outlier check. Re-reviewed 2026-08-21 across 89 settled lots: the +$775 is one lot (BTC > 71,000, +$674 on a $150 stake). Excluding it the book is +$101 (2.0% ROI); excluding the best three it is −$292. The day-clustered 95% CI on book ROI is [−13.9%, +52.7%] — no edge demonstrated, and no defect demonstrated either, because 89 lots cannot settle the question. Real money is −$56.72 over 10 lots (40% hit vs 64.5% predicted). Armed 2026-08-14 at $15/lot on a $1,000 bankroll with a −$300 auto-revert breaker; the Live Book screen tracks it.
"model beats market" was an artefact
The headline Brier gap (0.040 vs 0.086) lives entirely where the quoted mid is not a price — one-sided books whose mid lands on exactly 0.40 or 0.60. Where the book is genuinely two-sided, model and market differ by less than 0.003. Full working in docs/CRYPTO_EDGE_REVIEW.md.
how much would prove it
Per-lot return SD is 0.93 of stake. Distinguishing a true 10% ROI from zero needs ~334 independent lots (~90 days); a 5% ROI needs ~1,300 (~a year). Any filter tuned on the current sample is curve-fitting — every one swept looked excellent in-sample with a CI spanning zero.
Platform Book (paper)
Lifetime −$1,104 realized, but +$167 since the 08-04 baseline — the bleeders are halted, what runs now is net positive. mlb −$1,005 remains most of the lifetime loss; mlb, ufc, weather stay halted. Soccer re-enabled: skill on the winner market, none on totals/BTTS.
tennis anchors now
Fixed 2026-08-13 via a second odds provider (odds-api.io — covers the ITF/Challenger tier Kalshi actually lists; the original feed is main-tour only). First prod run anchored 88 of 113 rows after ~2,700 unanchored ones. Measure-only while calibration accrues.
cricket + CPL
Third series added 2026-08-13: CPL T20 (2-way — a tie goes to a super over). Its odds are EU-region-only, so prod fetches us,eu. Priced and logged, stakes nothing until the season produces a settled record.
golf has never staked
Mean absolute disagreement with the market of 0.005 — the compression guard working as designed on the free ESPN feed. A pure cost centre, kept for the log.

The daily loop

how to use it
1
Open the Control Center (the landing) — P&L across every portfolio, health of the automated jobs, and which books/verticals are trading.
2
Scan Recommendations — edges ranked by net-of-fee value across every live vertical, biggest at top.
3
The books auto-trade — BTC 15m and the Platform Book take qualifying edges on their own; open lots (with their settlement time) show in Positions.
4
Steer from the Control Center — stop/start a single vertical, a whole book, or hit STOP ALL to halt every engine at once.
5
Stage by hand if you like — hit + on any row to log a manual fill; it appears in Positions instantly.
6
Review — settled lots feed each vertical's calibration ladder; History shows exact per-vertical stats and P&L curves.

Risk bar

money at risk, always visible
Bankroll
Current play-money balance and where it started.
Deployed Today
Capital in open bets placed today vs the 10%/day cap.
Open P&L
Unrealized mark-to-market across open positions.
Realized · Today
Settled profit/loss booked today.
Daily / Weekly DD
Drawdown vs the −5%/day and −10%/week limits.
Circuit
Breaker status — turns red and halts new bets at −5% on the day.

Recommendations blotter

column glossary
Market badge
Winner / Total / Correct Score / Spread / BTTS.
p_model
Astra's fair probability for the selection.
p_market
Kalshi's implied probability (de-vigged mid).
Gross / Net edge
p_model − p_market, before and after fees. Net is what matters.
Conf.
Model confidence (odds freshness, data, time-to-kickoff).
Size · Kelly
Suggested stake = fractional Kelly (0.25×), capped at 2%/bet.

Soccer coverage

41 competitions · paper · currently halted
What's wired
Kalshi lists 66 soccer match-winner series; 41 with a confirmed API-Football league id are registered. Live boards today include the Champions League, Europa and Conference League, La Liga, Leagues Cup, EFL Cup, Coppa Italia, Eredivisie, Liga Portugal, Scottish Premiership, Liga MX, MLS, NWSL, USL, Brasileiro A/B/C and the South American leagues.
Dormant, wired anyway
The Premier League, Serie A, Bundesliga, Ligue 1, FA Cup, Copa del Rey and EFL Championship all exist as Kalshi series with zero open boards — their 2026-27 seasons have not listed yet. They are registered and activate on their own when Kalshi lists them; an empty board is simply skipped.
Reg Time boards
Cup/knockout series (Europa, EFL Cup, Coppa Italia, Copa do Brasil, UCL Women, AFC CL) prefix every leg Reg Time: and settle on 90 minutes, extra time excluded. API-Football's Match Winner is also regulation-time 1X2, so anchor and contract agree. Matching the bare label "Tie" would drop the draw leg on every one of those boards.
First-half series excluded
KXUCL1H / KXUEL1H / KXEPL1H are also 3-way with a Tie 1st Half label and look identical in shape. They are a different market and are deliberately never registered.
Team matching
Hand-maintaining a label map across 41 leagues would be ~800 entries and the biggest available source of wrong anchors, so names are matched by normalisation with a per-token similarity floor — both sides must agree and the fixture must be unique, else the event abstains. MLS keeps its explicit map (its LA/NY pairs collide under any normalisation). Guarded so Manchester United never matches Manchester City.
Quota discipline
API-Football is Pro: 300 req/minute, 7,500/day. The sweep reads Kalshi first (free), only considers fixtures kicking off within 24h, caches fixture lists, and spends an odds call only on a fixture already paired to an open board. A shared throttle and a per-sweep budget backstop it, and both log when they bite so a truncated sweep never looks complete.
Status
Halted and paper-only. Soccer is −$261.78 on 7 settled lots; the expansion accumulates a per-league record rather than staking on day one. Arm it only once the settled data justifies it.

The crypto model

risk-neutral density · v2, live 2026-08-21

Kalshi's crypto boards ask two shapes of question about the same distribution: a threshold ("will BTC be above $X at 5pm?") and a band ("will ETH land between $1,860 and $1,900?"). Both are priced from the Deribit option smile plus Coinbase spot — no directional view is ever taken.

What changed in v2
v1 read Φ(d2) at each strike's own smile IV. That is not the probability the smile implies: because IV varies with strike, the correct digital is Φ(d2) − vega·dσ/dK, and the old form dropped that skew term entirely — measured at −3 to −7pp near the money on the live surface, and dropped twice on a band. v2 recovers the probability directly from the option curve (Breeden-Litzenberger), so the skew is in the number rather than missing from it.
Option vol vs betting vol
Deribit's implied vol prices options and carries a risk premium; we are betting on where the price lands, which is a different measure. v2 scales the whole smile by a measured realized-vs-implied ratio — damped to half the gap and clamped at ±15%, so one bad estimate cannot move every probability at once. It is measured from market data only, never from our own P&L. As of 2026-08-21 it is inverted (realized 0.81 vs implied 0.61 on BTC), so it currently widens the distribution.
Arbitrage gate
A smile that implies a negative probability density is internally inconsistent, and a number read off it is not a probability — so we abstain rather than publish it. This is not rare: it refuses 0–15% of tradeable BTC strikes and 15–34% of ETH (ETH's coarser strike grid kinks more). Bands are checked across their interior, not just their two edges — a single bad strike between two clean edges moved a test band by 17.6 points.
Stale-quote edge
The desk's one structural advantage: Deribit and Coinbase move continuously while a Kalshi strike can sit untouched for minutes. When a quote has stood still while spot walked a full standard deviation, it is priced off a spot that no longer exists — that is an attributable reason to disagree with a market, rather than "our model says so". Logged on every market; gating entries on it is built but off by default until it has its own settled record.
Entry gates
Two loss pockets from the 89-lot review are now refused outright: net edge below 0.06 (48 of 89 lots, −12.2% ROI — an edge thinner than a fee-width is indistinguishable from a stale quote) and entries above 80c (29 lots, +0.2% ROI — you risk 80c to win 20c and the fee takes much of it). Both only ever remove bets, which is why they are safe on a thin sample. Expect materially fewer crypto lots.
Learning loop
Thresholds and bands now fit separate calibration ladders (each needs 150 settled samples and must beat its own walk-forward test, else the pooled ladder stays). A meta-labeler — "when we disagree with the market, which of us is right?" — is built but deliberately asleep: it needs 300 fully-instrumented settled lots and a statistically significant out-of-sample improvement before it is allowed any influence. Fitting it to today's 89 lots would be curve-fitting, so it predicts nothing until the evidence exists.

The soccer model

one engine per vertical

Each vertical has a model suited to its market. Soccer uses a Dixon-Coles bivariate-Poisson engine that produces a full score-probability matrix — P(home goals i, away goals j) — seeded from team strength and the de-vigged sharp bookmaker consensus (API-Football, ~13 books); every soccer market is a region of that one matrix (winner = summed halves, totals = diagonals, BTTS = both ≥ 1). Other verticals price differently: crypto strikes from the risk-neutral density implied by the Deribit smile (its own panel above), BTC 15m from realized volatility + drift, weather from the NWS forecast CDF, macro from a FRED nowcast, baseball/MMA from de-vigged moneyline consensus. The detail drawer shows the model behind each edge.

Cricket

NEW · paper-only · pre-match only
Two series
KXTESTMATCH is three-way — win / Draw/Tie / win — because a Test can genuinely be drawn, and that draw runs 20–40% on a typical match. KXHUNDREDMATCH (The Hundred) is two-way with no draw leg at all. Both are priced from the same de-vigged bookmaker consensus.
The draw is priced, never dropped
Discarding the draw and renormalising the two win legs — the shortcut the MMA path takes for its "3Way Result" — would inflate both win probabilities by roughly the whole draw share, about 25 points. The three legs are de-vigged together and sum to 1.
Pre-match only
The hard guard. A Test match lasts five days and Kalshi's close is day five, so a board sits open ~120 hours while a pre-match anchor goes catastrophically stale — by day four the true draw probability can be 90% against a pre-match 25%. Any match whose scheduled start has passed is refused outright, whatever the quote looks like. The 0.20 divergence guard is a second net, not the primary defence.
Team matching
An explicit label map per series — the twelve Test nations, the eight Hundred franchises — plus aliases for the 2026 rebrands (Northern Superchargers → Sunrisers Leeds, Oval Invincibles → MI London, Manchester Originals → Manchester Super Giants). An unmapped label or an unmatched fixture abstains; it never guesses.
Liquidity warning
Measured on the live board 2026-08-04: the Test board is tight (11c bid / 12c ask), but The Hundred spreads are enormous — 22c bid against 74c ask on several matches. Most Hundred markets will be unpriceable in practice after fees.
Status
Paper-only behind the standard 0.05 new-vertical edge floor (no calibrator yet → identity tier). Needs an Odds API key configured before it can price anything at all; with no anchor it abstains cleanly. Must earn its way out on settled outcomes like every other surface.

Edge, sizing & fees

how a bet is chosen
Benchmark
Sharp consensus is the anchor; we bet where Kalshi disagrees with the model.
Net of fees
Every edge must clear the Kalshi spread + fee to qualify.
Sizing
0.25× Kelly on the fee-inclusive price, scaled by confidence.
Caps
2% / bet · 10% deployed / day · halt at −5% daily, −10% weekly.

Live / In-Play

during matches

As a match plays, the model re-prices from the current score and minutes remaining and compares to Kalshi's live quote. It flags overreactions — e.g. a team still priced near its pre-match number after the game state has clearly shifted. These are the cleanest, most time-sensitive edges.

Positions, History & Bet Log

tracking
Positions
Every open auto-traded lot with entry, stake, model p, edge, and when it settles (local time + "in 3h" / "overdue").
History
Settled archive with exact, uncapped stats (DuckDB/Parquet): win rate, per-vertical W-L and P&L, Brier, and a cumulative-P&L curve. BTC 15m has its own by-exit-type breakdown on its tab.
Bet Log
Full audit trail across all verticals and books — fill, fees, outcome, realized P&L.

Logging a bet you placed

the + order ticket
The + button
On any Recommendations or Live Edges row, + opens an order ticket pre-filled with that market's ticker, side, and model price.
Enter your fill
After you place the bet on Kalshi, type the actual fill price (0–1) and number of contracts; stake is computed for you.
Log position
Records it via POST /api/bets into the ledger — it appears in Positions immediately and settles with the nightly job.
Placing on Kalshi
Search the shown ticker on kalshi.com (e.g. KXBTCD = BTC price), pick the strike/expiry, buy the side the row names.

Where your data lives

persistence
Single writer
The service persists to a cloud bucket mounted as its data dir — one instance, so logs are consistent. No manual file copying.
Positions / P&L
Every logged bet is written straight to the durable ledger; it survives restarts and settles overnight.
Recommendations
Refreshed by the per-vertical sweep crons through the day; each vertical writes to its own slice so none clobbers another.

Calibration & Research

trust & context

Calibration shows whether 60%-predictions actually win ~60%. Each vertical carries its own ladder (identity → logit at ~100 resolved → isotonic at ~500, walk-forward guarded), so a young book stays honestly uncalibrated · cold-start until it has earned enough of its own history — the Calibration view lists every vertical's tier and sample. Research researches each upcoming MLB / MLS / UFC event (free RSS evidence → one Haiku likelihood ratio), showing the top-50 current signals plus a Historical archive; everything is auditable (raw LR, sources, the news-implied nudge).

Stock Research

decision support — never auto-traded
What it does
Ranks a 494-name universe nightly and publishes a top-5 per sector across 9 sectors, each with an entry/exit level, horizon and STZ score. Signals are earnings surprises, revenue growth, analyst targets, trend and technicals (RSI/MACD/Bollinger). The why-line quotes up to 7 fundamentals including SEC-derived gross margin, FCF margin, ROA and buybacks/dilution (display only, never scored).
Momentum tags
🚀 MOMENTUM marks a pick trading ≥2% above its prior 52-week high (backtested: ~2× the sector alpha of the rest over ~3 months). MOM #n/m is the pick's 3-month price-momentum rank within its sector's scored universe. Both are display-only — the composite's static weights are untouched.
Not a trading engine
Nothing here is ever auto-traded, and the model's weights are static — the running system never tunes them. Entry/exit are model levels, not advice.
Shorts
Some picks are shorts (breakdown / exhaustion badges). A short is only published with an options-based vol check where a chain exists; absent options data never blocks one, since most of the universe has no liquid chain.
Dedupe
A name that qualifies in several sectors is published once, in its strongest sector, and the freed slot backfills — so the email is 45 distinct tickers, not 45 slots.
The tip email
Send Tech / Send All Sectors mails the current picks to confirmed subscribers, branded STZ AI (Astra is the internal name). Every send is audit-logged.
Scorecard
Send Scorecard is a separate email grading the previous cohort: each pick priced from the next session's open after the picks went out, against its sector benchmark, with a per-position chart. The default cohort is the last official tip send (test/subset sends never shift it) with a dropdown override; the summary shows mean and median vs sector, with a skew caveat when one big loser drags the mean negative; picks published with the momentum badge carry a 🚀 marker; repeats are marked. Preview first, then Send to me / subset… for a test send or the full-list send.
Learning loop
A weekly local factor study (T3M/T6M/TTM ICs per factor, data/factor_report.json + rolling history) and per-candidate evidence flags (breakout, would-fire dilution veto) accrue the case for weight changes. Weights stay static — any revision is a manual, fully-tested release that cites the report.
Subscribers
Self-serve signups are double opt-in — pending until the emailed confirm link is clicked, so nobody can subscribe an address they don't own. Every email carries a one-click unsubscribe.
Real Book
The research page's Real Book $ tab tracks the owner's ACTUAL brokerage fills — hand-entered, marked at live quotes on view (4:15pm ET eod-closes cron files the true closes), with per-position and book-level alpha vs sector benchmarks (risk-adjusted shows a dash, never 0.00, until 2+ sessions exist). Owner-only by design: no email or subscriber surface reads it. Positions can only be flagged public-eligible if the ticker was in an official tip send before the entry date — enforced in code, so lottery names can never qualify.

Lottery Picks

PRIVATE — owner-only research
The mandate
Names where a 10x within 2–10 years is arithmetically coherent. Hard refusals do the work: cap over $4bn, dilution >10% TTM, growth that can't cover a 10x inside the window at a conservative read (lower of quarter-YoY and SEC TTM), or too illiquid to exit.
Research notes
Every pick carries setup, bull case, caveats (data-quality first), a verify-by-hand checklist, and an exhaustive data dump across identity/valuation/technicals/SEC families — plus an FMP deep-dive (profile, TTM ratios, key metrics, 5y growth) when the key is set.
Private by construction
Session-gated only. Never in the tip email, the scorecard, or the public site — enforced by tests. FMP data is personal-use licensed: it feeds only this tab, and using it in the published sweep requires two explicit config switches that the tests pin.
Honesty
Not probabilities. Each row states what must be true (the implied cap and years of compounding), and the base rate: only a few percent of names 10x in a decade — most rows lose money. An empty list is a valid answer.

Metrics Reference

the formula shelf
What it holds
The 20 core stock and portfolio metrics — valuation (P/E, PEG, EV/EBITDA, P/B, P/FCF), profitability (ROIC, ROE, FCF yield, gross margin), balance sheet (D/E, interest coverage) and portfolio/risk (Sharpe, Sortino, alpha, beta, R², VaR, max drawdown, tracking error, CAGR) — each with its formula, what it tells you, and where it stands in Astra's model today (scored / logged-only / partial / not yet).

Parlay Book

paper · refuses premium by design
The thesis
Kalshi's popular multi-leg parlays trade at a +100% to +233% premium to the independence product of their legs. The book only takes a ticket priced at or below independence — it never pays up for correlation it can't verify.
Mostly it refuses
Most scans log the measured premium and pass. That is the intended output, not a failure — the log is the evidence.
Caps
$10 tickets, $200 open exposure, paper-only until 50 have settled.
Only traded pools
A freshly created combo has an empty book (bid 0.00 / ask 1.00) — nothing executable to price against — so only already-traded parlays are scanned.

Index Levels

daily technical picture — decision support only
What it is
A mechanical morning read of the index complex — SPX, SPY, NDX, QQQ, DJI, IWM and VIX. Prior day/week/month high-low-close, the floor-trader pivot ladder (S1–S3 / P / R1–R3), the 20/50/200 SMA stack, ATR(14), RSI(14) and the 52-week range. Written daily by the levels cron at 08:20 ET, weekdays.
Reading the chart
The line is ~6 months of closes; the horizontal rules are that index's own levels. Support is solid, resistance is dashed, and each is labelled directly — colour is a supporting cue, never the only one. Hover for the date, close, and distance to the nearest level.
Trend label
up needs both a stacked 20>50>200 and price above the 20-day; down is the mirror; everything else is range — including a stacked market that has just lost its 20-day. No tunable thresholds, and no full stack means no label.
Options (SPX & VIX)
Real quotes, IV and Greeks from CBOE's delayed-quote CDN — never Yahoo, whose IV is its own solver's unconverged steps. Two readings only: the ATM straddle expected move at the nearest expiries plus the next monthly (the market's own breakeven, not a forecast), and the ATM IV term structure at ~7/30/60/90 days with a contango / backwardation label.
What is not claimed
No IV rank — one snapshot cannot carry one, so it reads None while index_options_history.jsonl accrues the history that would earn it. No dealer gamma or positioning: a quote snapshot has no dealer side. IWM ships without a 1σ band because Yahoo has no ^RVX, and an S&P-width band on a small-cap index would be confidently wrong.
The read
One Claude call describes the numbers above and nothing else — no targets, no direction calls, no level it was not handed. It fails off: any error and the report ships without it.
Distribution list
A small list you maintain by hand on this screen, stored separately from the tip subscribers and mailed by its own send-levels cron. It never reads the published subscriber store, and its sends never touch the tip log the scorecard cohort anchors on.
Not advice
Decision support only. Nothing here is traded, sized or recommended, and the levels are mechanically derived from delayed public data.

Cross-Venue

measurement only — no model, no orders
What it is
Tracks the same contract on Kalshi vs Polymarket and logs the gap. It has no model and places no orders, and stays that way until the logged history says otherwise.
Executable pricing
Each leg is priced at what you could actually trade — buy the ask, sell the bid, minus the Kalshi fee. Mid-vs-mid shows "edges" that are negative once crossed.
Capital is both legs
A hedged pair ties up capital on both sides (~$1/contract), never just the buy leg — counting only the buy leg overstates return by up to 10×.
Verdict so far
No edge. The best pair measured was $140 of capital for $0.36 (0.26%, below T-bills) and it was gone within the hour. Kept running as a log, not a strategy.

Markets & Verticals

reference views
Markets
The raw Kalshi board Astra is pricing against — tickers, quotes and volume as fetched.
Verticals
Per-vertical state: what's enabled, when it last swept, how many recs it produced, and whether it's paper or live.

BTC 15m auto-trader

STOOD DOWN 2026-08-02 — pending live-trading enable
Status
Paused for cost. The 15s monitor was the sole reason the service needed an always-on unthrottled vCPU (~85% of the GCP bill) to paper-trade. At stand-down: 119 trades, +$233.52, 62.2% win rate — snapshot + 4-step re-enable runbook in docs/BTC15M_CALIBRATION_SNAPSHOT.md. All data retained; 0 open positions were stranded.
Correction (2026-08-04)
The stand-down note called this calibration monotonic across every probability bucket. A fresh pull of the prod ledger does not support that: the 0.5–0.6 bucket resolves at 43.8% and 0.7–0.8 at 58.8%, both below the 0.6–0.7 bucket's 69.0%, and directional accuracy across 1,383 predictions is 55.7% — barely above chance. The +$233 comes from the cash-out policy (89 exits, +$1,969) offsetting 30 full losses (−$1,735), i.e. from exit discipline rather than from edge in the probability estimate. Treat "well calibrated" as retired until a rebuild says otherwise. Full working: docs/BOOK_BASELINE_20260804.md.
The market
Kalshi KXBTC15M: one binary per 15-minute window, 24/7 — "will BTC close at/above its window-open price?" Settled on the CF BRTI 60-sec average.
The loop
A cron fires ~1 minute after each window opens (:01/:16/:31/:46) and prices fair P(up) from realized vol (EWMA of 1-min returns) plus a trend drift — short-term momentum (1-min candles, ~15-min halflife) blended with the multi-day trend (1-hour candles), shrunk 50% and hard-capped at ±10 prob points so momentum informs the model without dominating it. The scan retries every 20s until the order book is quotable so an early scan never forfeits the window. It paper-trades only when the net-of-fee edge clears the skepticism floor; a quoted book with no edge is a final, disciplined PASS.
15s monitor
While a position is open: cash out every lot when the market pays more than hold value + fee + θ, or add on a lot (max 2 adds, $75/window) when mid-window edge re-emerges. Every 15s mark is logged.
Discipline
Stop-loss: exit everything when the model's own win prob drops under 25% (salvage the bid, never ride to zero). Never average down: no adds more than 2c below avg entry — a falling price manufactures fake "edge". No longshots: entries need ≥40% model win prob. Stop-and-reverse: after a stop, the opposite side may be entered ONCE if it independently clears every entry gate (REV badge). Re-entry: a fully-exited window may be re-entered ONCE on a fresh either-side edge clearing the same gates (RE badge) — and the re-entered position lives under this same discipline. Dynamic sizing: stakes scale with net edge (5% edge = base stake, capped at 2× — $50 paper / $5 live).
Learning
Each settled window feeds the calibration ladder (identity → logit at 100 → isotonic at 500) and the tick paths replay hold-vs-cashout counterfactually to tune θ. The panel shows Brier raw-vs-calibrated and policy-vs-hold P&L.
Budget
The whole test runs inside a $5,000 paper bankroll — new lots are refused once realized losses + open exposure would breach it.
READY verdict
200+ settled windows, positive rolling-100 P&L, calibration past identity. Only then is switching to real execution even a conversation — and it stays a manual decision.
Going LIVE
GO LIVE on the BTC 15m view arms real Kalshi orders: password re-entry + typing LIVE, and while the verdict isn't READY also the exact override phrase. Live runs a separate $500 bankroll (~$2.50 lots) with a −$100 auto-revert breaker; the paper loop keeps trading in shadow so learning never pauses and slippage is measurable. BACK TO PAPER is one confirm — instant, and open live lots still settle.

Execution & bankroll

play money first
paper
Simulated fills vs real prices, play-money bankroll. Default — no risk.
demo
Routes orders to Kalshi's sandbox API (separate demo key).
prod
Real money — only after calibration is proven over weeks.
Market data
Always read from prod, so edges are real regardless of execution mode.

Themes & access

this dashboard
Ash / KK toggle
Switch the look — Ash (plum) or KK (terminal). Your choice is remembered.
? button
Top-right — opens this guide from anywhere.
Access
Password-gated, enforced server-side rather than in the browser. The session lasts 24h; when it expires the login gate returns and says so, so an expired session never looks like an outage.

Zone Signal

The Zone Signal weekly newsletter, controlled from here: review the week's shortlist, drive a redraft with editorial guidance, and publish the 5 picks. All heavy work runs on the curator-publish service in stz-curator-2026 — this tab is a thin authenticated proxy. Publish is the one approval gate: nothing broadcasts without it.

Drive the content

optional editorial guidance, applied to a forced redraft of this week's shortlist
A forced redraft discards the current candidates and any unsaved picks. Published weeks are immutable.

Weekly review

pick exactly 5, order matters — pick 5 is the General slot
PickCandidateArenaScore
Open this tab to load the week's shortlist…

Subscribers

per-arena growth snapshots (aggregate counts only)
SnapshotArenaSubscribedUnsubscribed
© 2026 ShapeTheZone LLC · All rights reserved
This product uses the FRED® API but is not endorsed or certified by the Federal Reserve Bank of St. Louis.