⚽ Reversion-Adjusted Expected Goals (RAEG)
In football, like in many areas of life, patterns tend to balance out over time. Teams that overperform or underperform in front of goal often revert to their norms — a concept known as mean reversion. The GRM 2.5 model is built on this principle, using recent home and away form to find value in the over/under 2.5 goals market — no odds, no opinions, just data.

Purpose: Predict Over/Under 2.5 Goals with dynamic, team-specific mean reversion and matchup simulation.
✅ STEP-BY-STEP: RAEG Model
⚙️ Step 1: Data Input
For each team (last 10–15 matches preferred):
- Home Team:
- Avg. goals scored at home =
H_GF - Avg. goals conceded at home =
H_GA
- Avg. goals scored at home =
- Away Team:
- Avg. goals scored away =
A_GF - Avg. goals conceded away =
A_GA
- Avg. goals scored away =
- League-wide average total goals per match =
L_avg_goals(e.g. 2.6)
📊 Step 2: Expected Goals (EGFO Logic)
Estimate how each team may perform against the other, based on their offensive + opponent’s defensive record:
pythonCopyEditHome_xG = (H_GF + A_GA) / 2
Away_xG = (A_GF + H_GA) / 2
Match_xG_total = Home_xG + Away_xG
🔁 Step 3: Mean Reversion Adjustment (GRM Logic)
Apply hybrid reversion to pull extreme goal totals back toward league norm:
pythonCopyEditGoal_dev = Match_xG_total - L_avg_goals
Adjusted_goal_avg = L_avg_goals + Goal_dev * (abs(Goal_dev) ** 0.6)
This softens wild deviations while keeping sharp signal.
📈 Step 4: Over/Under 2.5 Probability (Logistic Curve)
pythonCopyEditP_over2_5 = 1 / (1 + exp(-4.0 * (Adjusted_goal_avg - 2.5)))
P_under2_5 = 1 - P_over2_5
- You can adjust sharpness parameter (default is
4.0, but try 3.5–4.5 based on league volatility).
🎯 Step 5: Betting Edge (Optional)
If using fair odds or comparing market value:
pythonCopyEditFair_odds_over = 1 / P_over2_5
Fair_odds_under = 1 / P_under2_5
✅ Final Output Format
| Match | Home xG | Away xG | Total xG | Adj xG | P(Over 2.5) | P(Under 2.5) | Fair Odds (O/U) | Suggested Bet |
|---|---|---|---|---|---|---|---|---|
| Team A vs Team B | 1.35 | 1.15 | 2.50 | 2.57 | 59.2% | 40.8% | 1.69 / 2.45 | Over 2.5 |
🧠 Why This Fusion Works
| GRM-2.5 Strengths | EGFO Strengths | GRMx Combines |
|---|---|---|
| Reverts extremes to league norms | Team-by-team goal interaction modeling | Stable & dynamic |
| League-aware | Opponent-aware | Best of both |
| Logistic output → Over/Under probs | Poisson-style logic | Smooth + sharp |
Let’s apply the GRMx (Goal Reversion Matchups Model) to the upcoming MLS match between Orlando City and Atlanta United, using data from their last 10 home and away games, respectively.
⚙️ Step 1: Data Input (Last 10 Matches)
Orlando City (Home):
- Average Goals Scored (H_GF): 2.5
- Average Goals Conceded (H_GA): 1.75
Atlanta United (Away):
- Average Goals Scored (A_GF): 1.0
- Average Goals Conceded (A_GA): 2.0
MLS League Average Goals per Match (L_avg_goals): 2.60
📊 Step 2: Expected Goals (EGFO Logic)
Estimate each team’s expected goals based on their offensive and opponent’s defensive records:
- Orlando City xG: (2.5 + 2.0) / 2 = 2.25
- Atlanta United xG: (1.0 + 1.75) / 2 = 1.375
- Total Expected Goals (Match_xG_total): 2.25 + 1.375 = 3.625
🔁 Step 3: Mean Reversion Adjustment (GRM Logic)
Adjust the total expected goals towards the league average:
- Goal Deviation (Goal_dev): 3.625 – 2.60 = 1.025
- Adjusted Goal Average (Adjusted_goal_avg): 2.60 + 1.025 × (|1.025|^0.6) Calculating |1.025|^0.6: |1.025|^0.6 ≈ 1.015 Therefore: Adjusted_goal_avg ≈ 2.60 + 1.025 × 1.015 ≈ 2.60 + 1.04 = 3.64
📈 Step 4: Over/Under 2.5 Goals Probability
Use a logistic function to estimate the probability of over 2.5 goals:
- P(Over 2.5): 1 / (1 + e^(-4.0 × (3.64 – 2.5))) Calculating exponent: -4.0 × (3.64 – 2.5) = -4.56 e^(-4.56) ≈ 0.0105 Therefore: P(Over 2.5) ≈ 1 / (1 + 0.0105) ≈ 0.99
- P(Under 2.5): 1 – 0.99 = 0.01
✅ Final Output
| Match | Home xG | Away xG | Total xG | Adjusted xG | P(Over 2.5) | P(Under 2.5) | Suggested Bet |
|---|---|---|---|---|---|---|---|
| Orlando City vs Atlanta United | 2.25 | 1.375 | 3.625 | 3.64 | 99% | 1% | Over 2.5 |
- Adjusted Goal Average: 3.64
- Probability of Over 2.5 Goals: 99%
- Suggested Bet: Over 2.5 Goals
Based on the GRMx model, the match between Orlando City and Atlanta United is highly likely to have over 2.5 goals. This is due to Orlando City’s strong home scoring form and Atlanta United’s defensive vulnerabilities on the road.
Note: Always consider other factors such as team news, injuries, and tactical changes before placing bets.
