Changelog

Model updates, new sports, and API changes.

v11.0 April 14, 2026

Live Recalibration Overhaul — Runtime Fixes, Calibration, Backtests

  • Critical Runtime Fixes: Repaired the live recalibrator path, fixed settlement-time type errors, and updated tennis trade logging so those jobs no longer fail at runtime.
  • Recalibration Activated: Seeded recalibration history across all 11 supported sports so live calibration can run immediately instead of waiting on an empty buffer.
  • Calibration Improved: Major ECE improvements landed across tennis, CS2, and core US sports after the recalibration rollout and model cleanup.
  • Backtests Refreshed: Re-ran tennis, NFL, LoL, and CS2 backtests against the updated stack and disabled CFB after consistently negative results.
  • Tennis Model Tuning: Tightened dampening, raised WTA minimum edge, added a between-sets filter, and blended surface-specific Elo into match pricing.
  • Trade Logging Expanded: Tennis trades now store surface and best_of for downstream analytics and review.
  • Dependency Alignment: Updated local scikit-learn to match production and removed an inference error affecting MLB and CFB locally.
v10.0 April 8–10, 2026

Billing, Payments, Attribution, and Model Upgrades

  • NBA and NHL Retrained: Fixed missing team-stat inputs at inference, rebuilt the feature pipeline, and retrained both models with the intended data.
  • NHL Injury Overlay: Added a live skater injury adjustment layer sourced from ESPN to support pre-trade price corrections.
  • NBA Impact Table Expanded: Updated the star-impact map to cover more rotation players and current-season breakouts.
  • Live Recalibration: Added rolling isotonic recalibration per sport with periodic auto-refits and persisted history.
  • MLB Bullpen Overlay: Added inning-aware bullpen quality adjustments to late-game MLB pricing.
  • Momentum Kept: Confirmed momentum features still improve NBA model quality and retained them in the live stack.
  • Crypto Payments: Added NowPayments checkout, crypto discounts, email validation, and billing-event tracking across the payment flow.
  • Checkout Recovery: Enabled Stripe recovery links on expired sessions, shortened session expiry, and wired recovery emails into the webhook path.
  • Attribution Fixes: Restored non-zero conversion values, added enhanced conversion support, and captured ad click identifiers in first-party cookies.
  • Revenue Admin View: Added /admin/revenue with active MRR, at-risk MRR, collected cash, and Stripe-versus-crypto breakdowns.
  • Support Checkout Tool: Added /admin/support/mint-link to mint fresh prefilled Stripe links for blocked customers.
  • Middleware and CSP Cleanup: Replaced fragile middleware with ASGI implementations and tightened payment-related CSP allowlists.
  • IAB Flow Controls: Added override tracking and a configurable in-app-browser mode for Stripe checkout handling.
  • Cron Reliability: Added cron heartbeat logging and fixed broken campaign and retention jobs.
  • Billing Event Coverage: Expanded the billing ledger with crypto, recovery, IAB override, and support-link events.
  • Card-Required Baseline: Set STRIPE_API_STARTER_NO_CARD_TRIAL_PCT to 0 to evaluate the billing flow against a single card-required configuration.
v9.0 April 6, 2026

Model Intelligence Upgrade — Runtime Models and Homepage Cleanup

  • NBA Retrained: Switched to a tuned XGBoost stack, improved calibration, and added dynamic edge thresholds by game state.
  • NBA Injury Layer: Added ESPN-driven injury adjustments and a live star-impact table before edge calculation.
  • CS2 Combined Model: Rolled out a combined map-state and economy-aware CS2 model with confidence-weighted Elo support.
  • CS2 Entry Filters: Tightened edge and entry guards to cut overconfident and asymmetric fills.
  • LoL ML Model: Replaced the Elo-only path with the trained live model so match-state features now drive pricing.
  • WTA Calibration: Split ATP/WTA serve assumptions and added lightweight set-context adjustments.
  • MLB Load Fix: Regenerated the stale MLB model hash so all supported sports load correctly again.
  • Homepage Refresh: Simplified the hero, reduced CTA clutter, added clearer proof blocks, and refreshed product mockups.
  • CS2 Backtest Harness: Added a dedicated combined-model backtest using bo3.gg match history and bookmaker odds.
v8.0 April 4, 2026

Platform Overhaul — Infrastructure, Security, and Trading Stack

  • Unified Trading Process: Merged the live sport bots into one process with shared market feeds, portfolio-level controls, and a global circuit breaker.
  • CS2 bo3.gg Migration: Replaced HLTV with bo3.gg and moved CS2 onto a live economy-aware combined model.
  • Bot Safeguards: Added daily loss limits, streak cooldowns, rolling win-rate gates, and fixed an incorrect cents-to-dollars breaker bug.
  • Feed Quality Controls: Added freshness and confidence scoring, warm-start gating, and restart-safe execution queuing.
  • Activation Flow: Added a dedicated /activate flow for passwordless accounts and persisted activation milestones.
  • Course Ratings: Added purchase-gated ratings, review handling, and admin notification paths.
  • Security Hardening: Fixed unsubscribe auth, webhook SSRF checks, escaping, CSP, session cookies, and logout CSRF handling.
  • Backtest Integrity Pass: Regraded the public backtests, rebuilt LoL against real prices, fixed NFL split ordering, and synced public numbers to the corrected results.
  • State-Aware Pages: Personalized pricing, course, and recovery actions by user state.
  • Dashboard and Results UX: Added richer filtering, detail drawers, clearer status indicators, and better mobile behavior.
  • Monitoring Agents: Added automated reconciliation, entitlement, deployment, and strategy checks on cron.
  • Cache Pipeline: Improved stale pruning, sport normalization, active-market caching, and publish quality gates.
  • Purchase Fulfillment: Standardized confirmation emails, webhook account creation, and re-download access across products.
v7.0 April 4, 2026

CS2 Audit, Domain Migration, and Performance Cleanup

  • CS2 Audit and Refiltering: Tightened CS2 entry rules after live results exposed slippage, underdog bias, and thin-edge problems.
  • CS2 Rating Rebuild: Rebuilt the CS2 Elo base to expand team coverage and remove stale-rating failure cases.
  • Domain Migration: Moved the primary site from api.zenhodl.net to zenhodl.net and updated redirects, canonicals, sitemap, and emails.
  • Performance Pass: Added compression, long-lived asset caching, deferred scripts, and lighter proof media to improve page speed.
  • Claim Sync: Replaced stale public performance claims with the current backtest source of truth across product pages and emails.
  • Results Page Cleanup: Clarified ledger scope, reconciliation state, and excluded-row reporting.
  • Course Progress: Moved course progress from local storage into backend state and improved next-step guidance.
  • Trade Resolution Cron: Added scheduled settlement resolution through the Polymarket API.
  • Odds API Stability: Added retry backoff and request budgeting for sportsbook data polling.
  • Tennis Coverage: Added WTT tour support alongside ATP and WTA.
  • Copy Cleanup: Standardized account CTAs from “Sign up” to “Create Account”.
v6.0 March 30, 2026

Infrastructure Upgrade — CLV, Confidence Bands, Webhooks

  • Model Quality API: /v1/model/performance — Brier score, ROC-AUC, ECE, accuracy, and full conformal calibration tables for all 11 sports
  • CLV Tracking: /v1/model/clv — live closing line value tracking. Measures how often our entry price beats the final market price
  • Confidence Intervals: All prediction endpoints now include calibrated prediction bands from conformal prediction tables. Width narrows as games progress
  • Venue Status: /v1/venues — real-time status of all connected data venues (Polymarket, Kalshi, DraftKings, FanDuel, etc.)
  • Venue Filter: ?venue=kalshi on /v1/games and /v1/edges to filter by specific venue
  • Intraday WP Snapshots: /v1/snapshots/{sport}/{date} — win probability archived every 30s during live games (Pro+ tier)
  • Batch Predictions: /v1/predictions/batch — bulk download predictions for up to 90 days (Pro+ tier)
  • Webhook Push: /v1/webhooks — register URLs to receive edge signals in real-time via signed POST requests (HMAC-SHA256)
  • Course Rating System: Star ratings + written reviews at /course/rate with social proof widget on course page
  • NFL Model Fix: Corrected season ordering bug where 2020-21 test set was older than training data (data leakage eliminated)
  • Bot Safety: Circuit breaker (daily loss limit + streak detection), bankroll depletion check, WS/ESPN staleness guards, performance dashboard every 10 min
  • Billing Fixes: Fixed free trial 402 error, added checkout.session.completed webhook handler, fixed 3 pricing page checkout links pointing to wrong tiers
  • Security Hardening: Timing-safe CSRF comparison, HTTPS-only session cookies, randomized download secrets, custom 404 page
v5.0 March 28, 2026

Multi-Venue Pricing and Prediction API

  • Multi-Venue Pricing: Added edge calculations across Polymarket, Kalshi, and sportsbook feeds.
  • Cross-Feed Matching: Added team normalization so ESPN, exchange, and sportsbook data resolve to the same game entities.
  • Best Venue Display: The dashboard now shows which venue has the best available price per side.
  • Venue Filtering: Edge views can now be filtered by venue.
  • Live Prediction API: Added /v1/predict/{sport}/live for live win probabilities and venue-aware edges.
  • Pregame API: Added /v1/predict/{sport}/pregame for scheduled-game pricing.
  • Game Detail API: Added /v1/predict/{sport}/{game_id} for single-game model output.
  • Fair Lines API: Added /v1/fair-lines/{sport} with American-odds conversion.
  • Usage Metering: Added /v1/usage with monthly request breakdowns and tier caps.
  • Sportsbook Handling: Added multiplicative vig removal, adaptive polling, and a Polymarket-only fallback when sportsbook keys are missing.
v4.0 March 24, 2026

Advanced Elo Engine — MOV, Dynamic K, Surface Ratings

  • MOV Elo: Added margin-of-victory weighting for basketball and football Elo with autocorrelation protection.
  • Dynamic K: New teams now converge faster while mature teams stabilize with lower K values.
  • Sport-Specific Rules: Kept MOV and dynamic K off for low-scoring sports where margin is mostly noise.
  • Backtest Lift: Moneyline backtests improved after the Elo upgrade, with the largest gains in NBA and NCAAMB.
  • Tennis Surface Elo: Added Hard, Clay, and Grass ratings with blended match pricing.
  • LoL Regional Initialization: Added regional Elo starting points for esports teams.
  • Soccer Elo Tuning: Reduced elo_power and enabled the new Elo logic for soccer.
  • Model Retraining: Retrained the core win-probability models against the updated Elo inputs.
Data March 24, 2026

Market Data Store

  • Polymarket Archive: Added a large Parquet orderbook archive covering six sports.
  • Kalshi MLB Candles: Added full-season one-minute candle data for MLB markets.
  • Microstructure Pack: Added guardrail and spread-analysis datasets for market structure research.
  • Tennis Match Data: Added long-range ATP/WTA match and odds history.
  • Data Protection: Added watermarking, SHA-256 signing, and provenance cards across datasets.
  • Sample Previews: Added public previews at /samples.
v3.0 March 23, 2026

Model v3 — Football Features and Pregame Prior

  • Football Features: Added down, distance, yard line, and possession fields for CFB and NFL models.
  • Pregame Prior: Added an ESPN-based pregame win-probability prior.
  • Performance Lift: CFB and NFL backtests improved materially after the football feature expansion.
  • Trainer Option: Added --select-by-trading to train_wp_model.py.
New March 2026

CS2, LoL, and Tennis Models

  • CS2: Added a negative-binomial model with HLTV-derived Elo inputs.
  • LoL: Added a series model backed by lolesports data and regional initialization.
  • Tennis: Added a point-level model with surface-specific Elo.
  • Rollout State: Released all three in shadow mode before live trading.
New March 2026

ZenHodl API and Dashboard Launch

  • REST API: Launched /v1/games, /v1/edges, /v1/sports, and /v1/predictions.
  • Realtime Stream: Added a WebSocket feed for live updates.
  • Backtest Service: Added large-scale backtest querying as a product feature.
  • Edge Dashboard: Launched the auto-refreshing edge scanner UI.
  • Billing: Added Stripe checkout with a 7-day free trial.
  • Alerts: Added Discord edge notifications.
v2.0 February 2026

Spread/Total and Soccer Models

  • Spread Model: Added a regression-plus-CDF spread win-probability model.
  • Soccer Model: Added a Poisson-based soccer pricing model.
  • Backtests: Recorded positive early backtest results for both model families.
  • Polling: Added adaptive ESPN polling for faster live updates.
v1.0 December 2025

Initial Moneyline Model

  • Core Models: Launched LR-plus-spline moneyline models for NBA, NCAAMB, NHL, and MLB.
  • NCAAMB Stack: Added an XGBoost-plus-isotonic calibration path for college basketball.
  • Elo Base: Added team Elo ratings across the supported leagues.
  • Feature Set: Started with a score, time, period, and Elo-driven live pricing model.