The system treats certain books as "sharp" — their prices feed the consensus calculation that drives fairOdds and EV. The default sharp pool comes from the BB Odds Screen filter (Pinnacle, FanDuel, BookMaker, DraftKings, Kalshi, Novig in various combinations). But not all sharps are equal. This page measures each book's actual signal value — how predictive is their price of true outcome?
Why it matters
The 14-day analysis showed Pinnacle is load-bearing: bets without Pinnacle in the sharp pool ROI'd at −14.6%; bets with Pinnacle ROI'd at +10.4%. A 25-point delta.
Same analysis showed Kalshi treated as sharp underperforms: Kalshi-present bets ROI'd at −1.8% vs Kalshi-absent +7.1%. Kalshi may not actually deserve sharp status for many markets.
Treating a book as sharp when it shouldn't be pollutes fairOdds and produces phantom EV. Treating a real sharp as soft loses a load-bearing signal.
What this Studio page does
Replays settled positions and computes per-book signal metrics:
ROI when book IS in sharp pool vs. when it's absent (the simple presence/absence test).
Calibration of the book's implied probability vs. realized win rate.
Stability of the book's price relative to consensus (low drift → reliable; high drift → noisy or stale).
Per-(book, league, market) breakdown — a book may be sharp for NBA totals but soft for MLB run lines.
Acting on findings
Sharp pool selection happens upstream in the BB Odds Screen filter, not in user config. To act on a finding (e.g. "demote Kalshi from sharp pool for MLB live"), the change is made in the BB Odds Screen filter and recorded in docs/bookiebeats-filter-decisions.md. The OSD codebase consumes whatever pool BB exposes.
All segments are scanned automatically (flow × mode × league × market family). This studio evaluates
rows with populated bookOddsSnapshot first, then fallback to sharpOddsSnapshot.
Run Settings
This is the score the optimizer maximizes when ranking candidates.
Requires at least this many bets for a recommendation to be eligible.
Guardrails
Requires recommendations to span at least this many settled days. Set 0 to disable.
Rejects recommendations when worst-day profit drops by more than this amount. Set 0 to disable.
Requires this minimum share of profitable days for recommendations. Set 0 to disable.
Reject negative ROI/profit winners
Default ON for ROI/Profit objectives.
Show non-eligible fallback
Off by default; fallback winners are not recommendations.
Allow Overrides JSON
Off by default to prevent hidden bias.
Sharp Rankings sweep per segment to find the best sharp-book list, required-sharps subset, and min-sharps setting.
Winner selection is score-first; within the top band it prefers higher distinct days / coverage, then higher
min-sharps/required sharps, then fewer books. Tightness is diagnostic only (not gated).
Sweep Setup
Sharp Power Rankings scans all flow/mode/league/market segments automatically.
Sharp combo sweep settings
0 disables sharp-count gating.
Run-engine safety cap for the sweep.
Tests all book combinations from size 1 up to this value.
Auto uses 25% of available distinct days in the lookback window, clamped to a sane range.
0 disables lookback filtering.
0 disables lookback filtering.
Pricing consensus requires at least this many books per row.
Iterative reweighting
Reduces noisy/outlier books without fixed sharp lists.
For each combo, the sweep tests minSharps = 1..combo size.
Tests sharp-book list, required-sharps subset, and min-sharps.
Uses bookOddsSnapshot first, then falls back to sharpOddsSnapshot.
Evaluates all books present in each snapshot row.
Cap impact diagnostics
Multiplier sweep applied to per-book caps (comma list).
Guardrail: worst daily PnL cannot be below baseline by more than this amount.
Guardrail: require at least this many dated betting days in each optimization row.
Day is "winning" when daily profit is greater than this threshold.
Reject proxy winners
Flags required-book setups that gain score via tiny subset changes and prefers next non-proxy winner.
Collapse duplicate rowsets
Keeps only the first ranked candidate per identical included-bet set.
Data Quality & Output
Ready. Click Run Studio to execute sharp analysis.