Model Percentile Scorecard v10.4-alpha-mlb

Architecture and design assessment of the alpha pipeline — the SOLE production picks model. Foundation (June 2026): a discrete negative-binomial run-distribution for MLB, First-Five-innings folded in, two-sided no-vig de-vig with pitcher-aware moneyline pricing, and true closing-line CLV. August 2026 (v10.4) hardening: candidate ranking moved to calibrated expected value (z-score demoted to a display diagnostic); per-market unit discipline (moneylines and F5 capped, totals carry conviction) driven by measured closing-line value; doubleheader pricing and settlement fully disambiguated by start time; the self-optimization loop converted from a live parameter-mutator to a CLV observer whose changes are human-approved in Discord. Ratings reflect system capabilities, not results.

Alpha Pick Performance Live
Loading stats...
Capability Breakdown
Execution Architecture 98th
Fully deterministic JS pipeline computes all projections, edges, and Kelly sizing before the AI layer. Claude validates and writes narrative only — structurally cannot override math, add picks outside the candidate table, or increase units. Zero bypass paths.
Calibration Discipline 95th
v10.3 shrinkage calibration: every cover probability starts from the no-vig market price and earns only a fitted fraction of the model's claimed deviation (totals 0.30, spreads 0.35, moneylines 0.50 — fitted on 428 graded real picks, Mar–Jun 2026). Displayed EV is honest 3-15%, not marketing numbers. Quarter-Kelly sizing with 0.5u steps, EV > 3% calibrated floor, never worse than -250, moneyline dogs capped at +160. Every rule is enforced in code, not by prompt instruction.
Bankroll Management 92nd
4u daily exposure cap. 0.5u-3.0u range per pick. Drawdown detection triggers 25% Kelly reduction after 3+ consecutive losses. v10.4 per-market caps enforce measured discipline: totals (the segment with positive closing-line value) carry conviction units; full-game moneylines and F5 are capped at 0.5u until they earn a positive-CLV track record. Parlay sized at 0.5u (0.25u when a lean is on the card). Institutional bankroll management adapted for retail scale.
Edge Identification 90th
Cross-sport edge ranking on calibrated expected value (v10.4 — z-scores were not comparable across markets, so they systematically floated moneylines and F5 above totals; z is now a display diagnostic only). MLB cover probabilities come from a discrete negative-binomial run-distribution (analytic convolution of each team's projected run rate) rather than a normal CDF on a point estimate — baseball scoring is discrete and right-skewed, so this correctly prices the 1-run / half-run mass on run lines and the push region on totals. NBA and NHL still use sport-specific total standard deviations (NBA 18.5, NHL 2.3 goals) pending their own discrete models. Edge discount curve compresses outlier edges (log compression above 1 std dev). Consensus-tightness and line-movement discounts shrink edges the market has already priced. The 3% calibrated EV floor filters noise indistinguishable from variance at -110.
Projection Engine 88th
Three-method ensemble: Elo-based power ratings, sport-specific efficiency models (pace-adjusted for basketball, shot-based for hockey), and PPG averaging. Injury impact model adjusts projections for star player absences. Back-to-back rest penalty (3% scoring reduction) applied for NBA/NHL. Home-court adjustment baked in. All computed deterministically in JS.
Speed to Market 88th
Automated daily at 9am ET via Netlify scheduled function; First-Five lines fold into the same card from a 10am ET pass. 15-minute background worker, now hardened with per-call timeouts + exponential backoff and a deterministic fallback so a slow or rate-limited API can never stall or block a run. Early generation maximizes closing-line-value runway. Picks are final once generated — no mid-day overrides. No human in the loop for generation or delivery.
Data Pipeline 87th
Five independent data sources: real-time odds (13 sportsbooks), ESPN stats + injuries, daily-updated Elo ratings, prediction market cross-reference (Kalshi + Polymarket), and real-time breaking news (X/Grok). Each source fails independently without taking down the pipeline.
Sport Coverage 88th
NBA, NHL, and MLB active, plus MLB First-Five-innings (F5) folded in as a built-in market — the one genuinely soft corner, EV-discounted ×0.5 and slot/size-capped until closing-line value validates it. NCAAB disabled (sub-50% real accuracy) and all 8 soccer leagues disabled — 38.5% real daily-run record, and the normal goal model is structurally wrong for draw-heavy soccer (a discrete distribution is the prerequisite to re-enable). Quality over quantity: the cross-sport mandate evaluates every game with available lines and selects the highest calibrated EV regardless of sport.
Market Selection 85th
Spreads, totals, moneyline, and puck lines evaluated across all sports. Market-specific edge thresholds per sport. Alternate spreads and totals attempted with automatic fallback to core markets based on API plan. System considers every available market type per game before selecting highest-edge option.
Prediction Market Cross-Ref 82nd
Type-aligned validation against Kalshi and Polymarket. Parses market titles to classify bet type (moneyline, spread, total) and only compares matching types — totals to totals, spreads to spreads. Multi-market aggregation weighted by volume and bid-ask quality. Proportional unit adjustments in 0.5u steps. Prevents false flags like comparing a moneyline market against a totals pick.
Self-Correction 90th
Closing-line value is tracked on every pick 3x daily — Pinnacle-anchored, two-sided no-vig — including a 3am ET overnight run that settles night games (doubleheaders, postponements, and F5 all disambiguated) before the morning pipeline reads bankroll state. v10.4 changed the correction philosophy: the old loop that let trailing performance mutate live probabilities and Kelly multipliers was removed — it chased variance and inflated whatever segment ran hot. Self-optimization is now an observer: each Sunday it aggregates 60 days of CLV by market and by parlay leg, computes real-dollar ROI, and checks the grade ladder, then posts the verdict to Discord. Sizing levers only move on deliberate, human-approved config changes gated by measured CLV — never on a hot streak. Daily 10:30am QA pass audits every published pick's math and narrative.
5-Source Data Pipeline
The Odds API Real-time lines from 13 US/EU sportsbooks
ESPN API Team stats, injuries, schedules
Internal Elo Daily-updated ratings, splits, streaks
Kalshi + Polymarket Prediction market cross-reference
X / Grok-3-mini Real-time breaking news: injuries, lineup changes, weather alerts
Pipeline Architecture
1
Data Ingestion
Fetch real-time odds from 13 sportsbooks, team stats + injuries from ESPN, Elo ratings from internal store, prediction market prices from Kalshi/Polymarket, and breaking news via X/Grok.
Deterministic
2
Projection Engine
Three-method ensemble per game: Elo-based power ratings, sport-specific efficiency models (pace-adjusted basketball, shot-based hockey, run-based baseball), and PPG averaging. All computed in JavaScript — no AI involved.
Deterministic
3
Edge Computation
Compare model projections to consensus lines. Calculate spread, total, puck line, and moneyline edges — totals against their own (wider) standard deviations. Rank across sports by calibrated expected value (v10.4 — z-scores were demoted to a display diagnostic, since they were not comparable across markets and floated moneylines above totals). Apply sport-specific minimum edge thresholds (NBA 2.0 pts, NHL 0.4 goals, MLB 0.5 runs). Filter to calibrated EV > 3%. Consensus tightness, line movement, and market misalignment each discount edges the market has already captured.
Deterministic
4
Candidate Ranking
Rank all qualifying edges. Compute shrinkage-calibrated cover probabilities: no-vig market price plus a fitted fraction of the model's deviation (fitted on 428 graded real picks); legacy caps remain as guard rails only. Quarter-Kelly unit sizing scaled so calibrated EVs map cleanly across 0.5u-3.0u, with 0.5u step rounding. Top 15 candidates passed to validation.
Deterministic
5
AI Validation + Narrative
Claude receives pre-computed candidate table. Web searches for injury updates, lineup changes, weather. Selects top 3 picks from the table — can reject or reduce units but cannot override math, add picks outside the table, or increase sizing.
AI Layer
6
Enforcement + Delivery
JS enforces 4u daily exposure cap, 0.5u-3.0u per-pick range, drawdown detection (25% Kelly reduction after 3+ consecutive losses). Picks stored to Netlify Blobs, served via API. CLV captured 3x daily, results settled back into the store overnight, and a 10:30am QA function audits the published card.
Automated
Design Principles
Math in code, not in prompts: Every projection, edge, and unit size is computed deterministically in JavaScript. Same inputs always produce the same outputs.
AI validates, never overrides: Claude receives a pre-ranked candidate table and can only select, reject, or reduce — structurally cannot inflate sizing or fabricate lines.
Cross-sport by default: Every game with available lines is evaluated. The system picks the highest calibrated EV across all active leagues, not the most popular sport.
Fail gracefully: Each data source is independent. ESPN down? Elo ratings and odds still produce picks. Prediction markets unavailable? Pipeline continues without that signal.
Caps enforced in code: Cover probability caps, Kelly clamps, daily exposure limits, and minimum edges are all hard-coded — not prompt instructions that can be ignored.
Profitability Roadmap
Shrinkage calibration: SHIPPED (v10.3) Cover probabilities anchored to the no-vig market price, earning only a fitted fraction of the model's claimed deviation. Fitted on 428 graded real daily-run picks — displayed EV and win probabilities are now honest numbers.
Market-correct deviations: SHIPPED (v10.3) Totals use full-game total standard deviations (NBA 18.5, NHL 2.3, MLB 4.3) instead of margin deviations, removing a 40-50% systematic overstatement of total edges.
Settlement truth: SHIPPED (v10.4) The results grader that writes back to the store now disambiguates doubleheaders by start time, voids postponed/canceled games as pushes, and requires five recorded innings before settling an F5 bet — plus an awaited overnight sweep so night games never sit unsettled.
EV-based ranking + per-market caps: SHIPPED (v10.4) Candidates rank and size on calibrated expected value; totals carry conviction units while moneylines and F5 are capped until closing-line value earns them back.
CLV observer + Discord approvals: SHIPPED (v10.4) Closing-line value is tracked 3x daily (Pinnacle-anchored, overnight settlement) and aggregated weekly by market and by parlay leg. The observer proposes; a human approves bounded, reversible config changes in Discord. No live parameter mutation.
Real-data pruning: SHIPPED (v10.3) Soccer disabled (38.5% real win rate across 6 leagues), moneyline dogs capped at +160 (6-14 real record beyond it), and backtest-era sport multipliers removed after real results contradicted them.
Edge discount curve: SHIPPED Log compression on edges above 1 standard deviation prevents oversizing on inflated projections. Live since v10.0.
PM type-aligned cross-ref: SHIPPED Prediction market signals parsed by bet type, multi-market aggregated, and proportionally weighted. Eliminates false flags from mismatched market comparisons.
MLB projection engine: SHIPPED (v10.4) Starter FIP replaces raw ERA (≥30 IP gate), a discrete negative-binomial run distribution prices the run-line and total push mass, and park factors are baked into each projection — the highest-leverage summer upgrade now that MLB carries the slate.
Weekly Optimization Loop — Discord
The model audits itself every Sunday and reports to a private Discord channel. It is built so improvements are earned, not guessed: live sizing never changes on a hot streak — a lever only moves when the market's own closing line confirms the edge, and only after a human approves it. This is the feedback system that replaced the old loop of automatic parameter tweaks.
1 · Measure Every published pick's closing-line value is captured 3x daily — anchored to Pinnacle (the sharpest book in the world), two-sided no-vig. CLV, not a short-run win/loss record, is the truth signal for whether an edge is real.
2 · Observe (Sunday) The self-optimizer aggregates ~60 days of CLV by market and by parlay leg, computes real-dollar ROI per segment, and checks the grade ladder — do higher-graded picks actually win more? It is observational only; it never mutates the live model.
3 · Report A model-health digest posts to Discord: the parlay-leg CLV verdict (🟢 real edge · 🟡 building · 🔴 variance), a grade-inversion alarm if conviction stops predicting, market ROI, and the Odds-API quota remaining.
4 · Propose When CLV crosses a threshold, the digest appends a concrete, bounded proposal — e.g. raise the parlay stake once parlay-leg CLV turns positive, or lift the moneyline cap once ML CLV beats the close over 30+ picks. Nothing is proposed the data hasn't earned.
5 · Approve A one-word reply in the channel applies it. Approvals are restricted to the operator, write only a whitelisted, reversible config value — never code, never free-text instructions — and take effect on the next 9am card. Reverting is one reply away.
The rule A parlay of genuinely +CLV legs compounds edge; a parlay carrying a −CLV leg compounds a leak. So parlays are built totals-first (the segment that beats the close) and only scale when their legs are proven — discipline over adrenaline, enforced by process rather than willpower.