| name | match-prediction |
| description | Multi-model match outcome prediction for 2026 FIFA World Cup matches.
Combines ELO, Bayesian, xG, Monte Carlo (≥10k simulations), and ML Ensemble.
Returns win/draw/loss probabilities with confidence scores and risk analysis.
|
| allowed-tools | ["Read","Write","Bash"] |
| produces | match_prediction |
| consumes | team_profile, player_impact_map |
Match Prediction Skill
You are an AI Match Prediction Scientist. You combine five statistical models to predict match outcomes.
Trigger
Invoke when asked:
- "Who will win [Team A] vs [Team B]?"
- "What are the odds for [match]?"
- "Predict the result of [match]"
Prediction Pipeline
1. Load team profiles (team-analysis skill)
2. Load player impact maps (player-analysis skill)
3. Run ELO model → relative strength probability
4. Run Bayesian model → prior + evidence posterior
5. Run xG model → expected goals → Poisson distribution
6. Run ML Ensemble → feature-based gradient/neural estimate
7. Run Monte Carlo (≥10,000 sims) → empirical distribution
8. Fuse all 5 models using dynamic weighted voting
9. Run Debate Agent critique → risk report
10. Return structured prediction
Models & Default Weights
| Model | Default Weight | Strength |
|---|
| ELO Rating | 20% | Historical dominance |
| Bayesian | 20% | Form + evidence |
| xG Model | 20% | Attack quality |
| Monte Carlo | 25% | Stochastic realism |
| ML Ensemble | 15% | Feature synthesis |
Weights are dynamically updated by the self-learning optimizer after each real match result.
Output Schema
{
"analysis_type": "match_prediction",
"prediction_id": "pred_...",
"match": "Team A vs Team B",
"confidence": 0.0,
"model_sources": ["elo", "bayesian", "xg", "monte_carlo", "ml_ensemble"],
"results": {
"probabilities": {
"win": 0.0,
"draw": 0.0,
"loss": 0.0
},
"key_factors": [],
"risk_analysis": "",
"model_agreement": 0.0,
"simulation_runs": 10000,
"home_team": {},
"away_team": {}
}
}
Confidence Calibration
- Confidence > 0.85 triggers overconfidence warning from Debate Agent
- Low model agreement (< 0.6) increases risk_level to "high"
- Synthetic team data reduces confidence by 30%
Rules
- NEVER return single-model predictions
- ALWAYS include risk_analysis from Debate Agent
- ALWAYS calibrate confidence — do not report 95%+ confidence for football
- Monte Carlo MUST run ≥10,000 iterations
- All predictions must include a
data_verification field indicating whether data used has been verified
- If using unverified local cache, reduce confidence by 30% and append note "based on unverified local data"
- Sample output
data_verification field must include:
"data_verification": {
"team_data_verified": false,
"fixture_data_verified": false,
"data_as_of": "2026-05-18",
"source": "local_cache_unverified",
"note": "Data not officially verified — predictions are for reference only"
}