Research Lab
+EV opportunities, observation history and simulated performance from the fair-value research pipeline. The Python backend owns every quantitative value — fair probability, edge, expected return, settlement and P&L — and this dashboard presents them read-only. Nothing here places a wager.
Why an opportunity stops qualifying
Expired, invalidated, settled and event-started rows keep their observation history. A short human-readable reason is requested from the backend (docs/API_CONTRACT_REQUESTS.md R-4); until it exists the status enum is shown as-is rather than invented.
1 of 1 shown
Expected return is the backend's net-per-$1-payout estimate after fees and allowances. A row can show a positive raw edge and still carry a negative expected return once fees, rounding and allowances are applied — that is the backend's semantics, not a display error, so cost-negative rows are shown by default.
| Event | Market | Selection | Market price | Fair prob. | Edge | Expected return | Last detected | Status | |
|---|---|---|---|---|---|---|---|---|---|
Demo Away 2 at Demo Home 2 MLB · Oct 12, 7:05 PM ET | Moneyline kalshi-fair-value vkalshi-baseline-v2 | Demo Home 2 | 36.0% | 34.0% | -2.0 pts | -8.5% | Sep 17, 10:06 PM ET 12s old | Expired | |
Data source
This section is running on deterministic synthetic fixtures that mirror the backend contract exactly. No quantitative value here is live or tradeable.