Model Percentile Scorecard v10.1
Architecture and design assessment of the v10.1 deterministic edge pipeline. v10.1 ships sport-weighted Kelly, tighter EV filtering, and Claude selector intelligence. Ratings reflect system capabilities, not results.
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
Sport-specific cover probability caps prevent overconfidence. Quarter-Kelly sizing with 0.5u step rounding. Hard rules: never worse than -250, minimum edge per sport, EV > 8% floor (raised from 3% in v10.1 to eliminate noise edges). Sport-weighted Kelly multipliers penalize weak sports (NBA 0.85x) and boost proven ones (NHL 1.30x). Every cap 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. Parlay capped at 0.5u/day. Institutional bankroll management adapted for retail scale.
Edge Identification
90th
Cross-sport edge ranking via normalized z-scores. Sport-specific standard deviations calibrate edges to comparable scales. Edge discount curve compresses outlier edges (log compression above 1 std dev). v10.1 raises NBA minimum edge to 3.0 pts (was 2.0) to filter coin-flip plays, and the 8% EV floor eliminates marginal candidates that were previously diluting the card.
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 10am EDT via Netlify scheduled function. 15-minute background worker. 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
11 leagues active: NBA, NHL, MLB, and 8 international soccer leagues. v10.1 disables NCAAB (48.7% accuracy, -7.0% ROI in 97-day backtest) — quality over quantity. Cross-sport mandate evaluates every game with available lines and selects the highest EV regardless of sport. Sport-weighted Kelly (NHL 1.30x, NBA 0.85x) tilts volume toward proven edge sports.
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
75th
CLV tracking infrastructure built and running daily. Calibration blob storage and drawdown detection active. v10.1 ships the first manual self-correction: sport-weighted Kelly multipliers derived from 97-day backtest (NHL boosted, NBA penalized, NCAAB disabled). Automated CLV feedback loop still pending — architecture ready but needs live v10.1 data before activation. This remains the bottleneck to reaching 95th composite.
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 edges, total edges, and puck line edges. Normalize across sports via z-scores. Apply sport-specific minimum edge thresholds (NBA 3.0 pts, NHL 0.3 goals, MLB 0.5 runs). Filter to EV > 8% floor. Sport-weighted Kelly multipliers (NHL 1.30x, NBA 0.85x) size bets proportional to proven accuracy.
Deterministic
4
Candidate Ranking
Rank all qualifying edges by z-score. Compute cover probabilities with sport-specific caps (NHL puck 60%, NBA spread 72%, totals 75%). Calculate quarter-Kelly unit sizing 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 tracked at game time.
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 EV across all 12 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
CLV feedback loop: Use closing line value as a reliability signal — sports and markets where the model consistently beats closing lines get higher Kelly multipliers.
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 now parsed by bet type, multi-market aggregated, and proportionally weighted. Eliminates false flags from mismatched market comparisons.
B2B rest penalty: SHIPPED 3% scoring reduction for teams on back-to-back. Industry-standard adjustment based on league-wide data.
CLV feedback loop: Use closing line value as a reliability signal — sports and markets where the model consistently beats closing lines get higher Kelly multipliers. Requires ~200 picks of history. Target: mid-April 2026.
Sport-weighted Kelly: SHIPPED (v10.1) NHL 1.30x boost (66.7% accuracy, +35.1% ROI), NBA 0.85x penalty (50.0% accuracy, -4.5% ROI), NCAAB disabled (48.7% accuracy). Backtest-driven, not speculative.
EV floor tightened: SHIPPED (v10.1) Raised from 3% to 8%. Eliminates noise edges that look like signal but are indistinguishable from random variance at -110 odds.
Rolling calibration: Automated threshold adjustment based on trailing accuracy windows. Tighten filters in cold streaks, loosen in hot markets.
Daily Operating Cost
The Odds API
~91 calls/day across 13 sports, 2x daily runs + CLV
$3.30
Claude API (Sonnet)
~137K output tokens + web search validation, 5 daily function calls
$3.50
xAI / Grok-3-mini
Breaking news alerts, narrative assist
$0.15
ESPN API
Team stats, injuries, schedules — public API
Free
Kalshi + Polymarket
Prediction market data — public APIs
Free
Netlify (Hosting + Functions + Blobs)
Scheduled functions, blob storage, CDN — free tier
Free
Twilio SMS
On-demand only, not scheduled
~$0
Daily Total
~$6.95
Monthly Total
~$208
5 independent data sources. 12 leagues. Automated 2x daily. Full institutional-grade pipeline at retail cost.