Methodology
How BetEdge AI Makes Predictions
A transparent look at our prediction engine, from data ingestion to cryptographic verification. No black boxes.
Two-Layer Prediction System
ML Primary Path
Models are loaded via a ModelRegistry from serialized .pkl files. Training runs a bake-off across gradient-boosted trees (XGBoost, LightGBM) and regularised logistic regression, and ships whichever calibrates best on held-out data by Brier score — for both models currently in production, that is logistic regression. Coverage today is NBA spread and moneyline. Every other sport and market is served by the rule-based path below, and is marked Estimated wherever it appears.
Model versions are tracked with model_version field (e.g., ml-trained-nba-v2).
Rule-Based Fallback
When ML models aren't available or confident enough, a rule-based system using team tiers and historical matchup data provides predictions. These always include a disclaimer in the reasoning.
Model versions: statistical-v1. Easily identifiable in the track record.
Feature Engineering
The models ingest exactly 24 features per game, across the six groups below. This is the full list — the extractor produces these and nothing else.
Team Ratings
- Offensive rating (home, away)
- Defensive rating (home, away)
- Net rating (home, away)
- Net rating differential
Pace & Scoring
- Pace differential
- Expected combined total
Rest & Schedule
- Rest days (home, away)
- Rest advantage
- Back-to-back flag (home, away)
Recent Form
- Wins in last 10 (home, away)
- Current streak (home, away)
Home / Away Splits
- Home win rate at home
- Away win rate on the road
Market Data
- Market spread
- Market total
- Spread disagreement across books
- Moneyline implied probability
Confidence Calibration
Raw model probabilities are calibrated with Platt scaling (a sigmoid fit) on a held-out split, so that a “70% confidence” prediction is intended to win roughly 70% of the time. Whether it does is measured, not assumed — the calibration page publishes the observed curve and Brier score.
High Confidence (80%+)
Strong model agreement with clear market inefficiency. Fewer picks, higher expected edge.
Medium Confidence (60-79%)
Solid directional signal with some uncertainty. Most daily picks fall in this range.
Lower Confidence (50-59%)
Slight edge detected. Only surfaced when combined with positive expected value (+EV).
Cryptographic Verification
Every prediction is SHA-256 hashed before the game starts to guarantee we can't alter picks retroactively. This is how we prove our track record is real.
Hash Generation
When a prediction is created, we compute SHA256(JSON of gameId, predictionType, predictedOutcome, confidence, reasoning, recommendedOdds, stake, modelVersion, publishedAt — keys sorted) and store the hash permanently.
Immutable Storage
The hash is stored alongside the prediction before tip-off, and the verify endpoint recomputes it from the stored row. A mismatch means the row changed after publication. It is a tamper-evident checksum, not an external anchor — it proves the published record is internally consistent, not that it was witnessed by a third party.
Public Verification
Anyone can verify any prediction via our public API: GET /api/public/verify/[predictionId]. The response includes the stored hash and a recomputed hash for comparison.
See It in Action
Browse our verified public track record or start getting predictions today.