AI Model Card
BettingAI Hybrid Prediction Engine — documented from the system actually running in production. Every figure on this page is read live from our database; unavailable metrics are shown as “Not available”.
Live model status
Last training run: Not available · Version created: Not available · Data read at Not available.
Model overview
- Model name
- BettingAI Hybrid Prediction Engine
- Current version (match outcome)
- Not available
- Deployment status
- Not available
- Model type
- Deterministic hybrid ensemble executed in-database (PostgreSQL function ai_predict_match): bookmaker-margin-removed market probabilities blended with approved analyst probabilities and parsed team-form signals, then calibrated by the active version's calibration factor.
- Purpose
- Estimate outcome probabilities for listed fixtures, surface expected value and a suggested odds range, and explain the reasoning behind each selection.
- Sports covered by listed fixtures
- Not available
- Distinct competitions in fixture data
- Not available
Model registry (active models and versions)
| Model | Kind | Active version | Deployed | Notes |
|---|
The probability pipeline documented below is implemented for the market-based match-outcome path. Other registered model kinds share the same registry, versioning and deployment mechanics.
Intended use
- Analyse available information about a listed fixture (market odds, analyst research, recorded form).
- Estimate probabilities for each outcome and select the highest-probability option.
- Combine the signals that are actually present for that fixture — no signal is fabricated when missing.
- Assist users with prediction research by exposing probability, confidence, expected value and a suggested odds range.
- Report the confidence attached to each selection so users can judge uncertainty themselves.
Not intended as financial advice, an outcome guarantee, or an automated staking system. The user decides whether to place any bet.
Prediction methodology (as implemented)
Each prediction request runs these steps:
- Load the fixture and the active model version for the requested market kind. If no active version exists, the request fails rather than guessing.
- Read the 1X2 market prices, invert them into implied probabilities and remove the bookmaker margin proportionally.
- Load the most recent analyst research record for that fixture, if one exists.
- Derive a simple form score for each side from the recorded form string (share of wins in the sequence). Defaults to 0.5 when no form is recorded.
- Load the most recent approved or published analyst prediction for the 1X2 market that is flagged visible to the AI, and convert it into a probability distribution.
- Blend the available signals with dynamic weights, normalise, and pick the highest-probability outcome.
- Multiply the winning probability by the active version's calibration factor to produce confidence (clamped to 1–99).
- Compute expected value as (probability × odds) − 1, assign a risk level from confidence, and derive a suggested odds range around the market price.
- Store the prediction with its weights, feature importance, calibration factor and reasoning for later grading.
Dynamic weighting
Base weights are market 0.50, approved analyst prediction 0.35 (only when one exists), and team form 0.15 (only when an analyst research record exists). The weights actually used are renormalised over the signals present, so a fixture with no analyst input is driven almost entirely by the margin-adjusted market probabilities. The renormalised weights are stored on every prediction.
What the exposed fields mean
- weights — the renormalised contribution of market, analyst and form to this specific prediction's probability blend.
- featureImportance — a rule-based availability score (not a learned attribution) showing how much each signal category could contribute for this fixture, based on which research fields are populated.
- calibration — the active model version's calibration factor, computed at training time as 1 − Brier score, applied as a multiplier to the raw probability when producing confidence.
Injuries, odds/market movement and head-to-head are captured in analyst research and included in the feature importance breakdown and stored training features. In the current probability blend they influence the output indirectly, through the analyst prediction and the research record they belong to, rather than as separate numeric terms.
Analyst integration
- Prediction analysts complete a structured research workspace per fixture (form, injuries, suspensions, head-to-head, market movement, weather, venue, referee, statistics, news, notes).
- Analysts then submit a prediction with market, selection, odds, probability, confidence and written reasoning.
- A senior analyst reviews each submission and can approve, approve-and-publish, or reject it.
- Only predictions in approved or published state, flagged visible to the AI, for the 1X2 market, are eligible for the hybrid blend — and only the most recently approved one for that fixture is used.
- When no such analyst prediction exists, the analyst weight is zero and the engine relies on market and form signals only.
- Approving, publishing or settling an analyst prediction captures it as a training sample together with a snapshot of its research record.
Training pipeline
approved / published analyst prediction -> training sample created (with research snapshot) -> quality checks: duplicate + low-quality flags, quality score -> fixture settles; outcome and correctness written back -> error metric = |outcome - predicted probability| -> eligibility: settled, not duplicate, not low quality -> training job (queued manually by an admin, or automatically at 25 unused eligible samples) -> job computes metrics and creates a new model version (inactive) -> administrator reviews metrics and deploys the version -> ai_predict_match uses the newly active version for future predictions
- Duplicate filtering: a sample is flagged duplicate when another sample already exists for the same fixture, market and selection.
- Low-quality filtering: empty research, missing odds, odds below 1.05 or above 50, or confidence below 30 flag the sample as low quality.
- Quality score: starts from the recorded confidence, minus 30 for low quality and minus 15 for duplication, clamped to 0–100.
- Flagged samples are excluded from every metric and from training.
- A training job needs at least 10 eligible settled samples; below that it fails with an insufficient-samples error instead of producing a version.
- Automatic retraining is queued once 25 eligible settled samples have not yet been used for training, and only when no job is already queued or running.
- New versions are always created inactive. Nothing reaches production without an explicit administrator deployment.
Training data
Minimum samples per training job: Not available · Auto-retrain threshold: Not available · Most recent sample: Not available.
Samples originate from analyst predictions that reached approved, published or settled state. Each stores sport, league, market, selection, odds, probability, confidence, risk level, reasoning, a JSON snapshot of the research (form, injuries, suspensions, head-to-head, market movement, statistics, weather, venue, referee, news, notes), plus the settled outcome, correctness flag and error metric. Historical fixture results enter the dataset through settlement of these analyst-generated samples; the engine's own live market data is read at prediction time and is not stored as a separate training corpus.
Evaluation metrics
Three distinct things are reported separately and must not be conflated: metrics computed at training time over the sample set, the metrics stored on each model version, and live performance of predictions actually served and settled.
Training-time metrics of the active version
| Metric | Value | Scope |
|---|---|---|
| Accuracy | Not available | Settled, de-duplicated analyst training samples at training time |
| Precision (confidence ≥ 60 as positive class) | Not available | Settled, de-duplicated analyst training samples at training time |
| Recall | Not available | Settled, de-duplicated analyst training samples at training time |
| F1 | Not available | Settled, de-duplicated analyst training samples at training time |
| Brier score | Not available | Settled, de-duplicated analyst training samples at training time |
| Calibration (1 − Brier) | Not available | Settled, de-duplicated analyst training samples at training time |
| ROI per unit staked | Not available | Settled, de-duplicated analyst training samples at training time |
| Samples evaluated | Not available | Settled, de-duplicated analyst training samples at training time |
Live served predictions
Where an accuracy figure appears above, its metric name, sample size, evaluation period, scope and whether it is training-time or live settled performance is stated alongside it. Per-league, per-market and per-confidence breakdowns, and daily/weekly/monthly performance, are computed for staff in AI Monitoring and shown in the administrator section of this page when available. Small sample sizes make all of these figures unstable.
Broader public metrics are also published on AI Accuracy & Performance.
Feature importance
Feature importance is computed per fixture by a rule-based availability function. It scores six signal categories — Analyst Research, Team Form, Injuries, Odds Movement, Head to Head and Historical Data — based on which research fields are populated for that fixture, then normalises them to 100%. It is an availability and design-intent breakdown, not a learned attribution from a gradient-based model, and it is stored on every prediction so that any past prediction can be re-examined.
Because the values depend on the specific fixture, no single set of percentages is representative. The exact breakdown for a prediction is returned with that prediction. Administrators can see the baseline (no research, no analyst) breakdown below.
Calibration
At training time the Brier score is computed over settled samples, and the calibration factor is stored on the new model version as 1 − Brier. When serving a prediction, ai_predict_match reads the active version's calibration factor and multiplies the raw winning probability by it before clamping the result into the 1–99 confidence range. When a version carries no calibration value — as with the bootstrap version — the factor defaults to 1.0 and confidence equals the raw probability.
Calibration exists so that reported confidence tracks observed hit rate: a poorly calibrated model, indicated by a high Brier score, has its confidence pulled down instead of continuing to sound certain.
Model version history
| Version | Model | Created | Samples | Accuracy | Calibration | Status | Deployed |
|---|
Only versions that exist in the model version registry are listed.
Model limitations
- Football and other sports outcomes are inherently uncertain; upsets are normal, not model failures.
- Available data can be incomplete or delayed, and the engine refuses to predict when required market odds are missing.
- Injuries and line-ups change after research is recorded; the model does not see undisclosed information.
- Odds can move rapidly after a prediction is stored, changing the value of a selection.
- Historical patterns may not repeat, and settled analyst samples are a small, non-random slice of all fixtures.
- Analyst research and analyst predictions can contain errors or bias, and they carry real weight when present.
- Form parsing is deliberately simple (share of wins in the recorded sequence) and ignores opponent strength.
- Performance varies by league and market; per-segment metrics with few samples are unstable and can swing wildly.
- The current active version may be the bootstrap statistical version with no trained evaluation metrics.
- Model performance, however measured, does not guarantee future results.
Responsible use
BettingAI is a prediction and research tool. It does not guarantee winnings. Confidence is an estimate of likelihood, not certainty, and a high-confidence selection will still lose a meaningful share of the time. Only stake what you can afford to lose, and see Responsible Betting and AI Transparency.
Data and privacy
- Training samples contain fixture data, market/selection/odds, analyst-authored research and reasoning, and settled outcomes.
- The analyst who authored a prediction is referenced by internal identifier so submissions can be scored; no bettor identity, wallet balance, stake history or contact detail is written into the training dataset.
- Predictions served to a signed-in user are stored against that user so they can see their own history; that per-user record is not used as model training input.
- Personal user information should not be used as training data unless a feature is explicitly designed for it and the user has consented.
- Access to the training dataset, model versions and training jobs is restricted to administrators and AI staff by database-level row security; this page reads only aggregate figures for everyone else.