Soccer predictions: actual data vs predicted data

Slate 20261021 · 1 match(es)
How to read this report. Each match shows the model's headline prediction, the stage-by-stage lambda (goal-rate) build, both teams' standing/form inputs, and every starter's projected line next to their real season baseline. A moderate / large deviation badge flags a projection that strays far from the player's season form — a quick way to spot when the inputs look right but a projection does not. When the real result is known an actual-vs-predicted banner appears.

All matches overview

MatchScoreWinnerH / D / AO2.5BTTSConfλ H/AActualResult
Levante vs Athletic Club
LaLiga
1-1Draw33.6% / 28.5% / 37.9%40.7%47.0%0.71.11 / 1.20-pending

Match detail

Levante vs Athletic Club

LaLiga · 20261021 · 4-3-3 vs 4-2-3-1
Predicted 1-1Winner: DrawWinning H 1-0 (10.9%)Winning A 0-1 (11.8%)Confidence 0.7λ home/away 1.11 / 1.20Most-likely P 13.4%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Levante vs Athletic Club. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-3-3 vs 4-2-3-1 (duel lambdas: Home 1.171, Away 1.143). Final calibrated Poisson lambdas: Home 1.112, Away 1.200 (most likely score 1-1).
Home Starters 11/11 XGBoost (7 FBref) Away Starters 11/11 XGBoost (10 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 1.17 / 1.14 Final λ (H/A) 1.11 / 1.20
FBref Team Priors: Levante UD (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 1.235) vs Athletic Club (Gls/90: 1.0, GA/90: 1.0 → E[λ]: 1.237) | Blend Weight: 0.228
Modeling Pipeline Stages (5 layers)
  1. 1. XGBoost player regressions for volume & event rates with market-value quality scaling
  2. 2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)
  3. 3. Antagonist formation duel matrix resolving 1v1 and zonal matchups
  4. 4. Team-level prior calibration (FBref possession and attack/defense efficiencies)
  5. 5. Bivariate Poisson matrix with Dixon-Coles low-score correction

Standing & form context

MetricLevanteAthletic Club
League position17.0011.00
Points per game1.081.32
Attack index0.990.83
Defense (concede) index0.801.12
Form multiplier0.991.01
Standing λ multiplier0.910.97

Lambda decomposition (how the goal rates were built)

StageLevante λAthletic Club λ
FBref Squad Prior E[λ] (weight 0.228)1.2351.237
Pre-competitive-floor1.1121.200
Pre-calibration (Micro-duels)1.1711.143
Final λ1.1121.200
competition calibration scale 1.0competition observed total goals 0.0quality gap applied Falsemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-113.4%
0-111.8%
1-010.9%
0-010.0%
1-27.9%
Home win33.6%
Draw28.5%
Away win37.9%
Over 2.540.7%
BTTS yes47.0%
Pregame fair line — favorite Athletic Club (37.9%), fair total 2.31, fair spread -0.09

Projected players vs season baseline

Proj = projected for this match · Season = this season's per-game average from match data · deviation badge compares projected xG to the player's season xG/game.

Levante — projected line vs season baseline (4-3-3)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Petar RatkovF7300.210.03533%20.46.732.88XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9997, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9997
reference_quality=0.505
history_matches=4
history_shrink=0.5556
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aymeric Laporte, Yeray Álvarez', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.207, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0109, 'skill_edge': 0.0074, 'height_edge': 0.0, 'attacker_skill': 0.5035, 'defender_skill': 0.4869, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aymeric Laporte', 'market_value': 8400000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.5365}, {'player': 'Yeray Álvarez', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2093}
totalShots: 1.5021 -> 1.5185
shotOffTarget: 0.9095 -> 0.9194
onTargetScoringAttempt: 0.5925 -> 0.599
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 68.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1909
goal_rate=0.1985
scorer_weight=0.203
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0353
assist_rate=0.3137
provider_weight=0.0449
-
Iván RomeroF7710.260.24ok21.66.960.231FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9995, quality 0.491)market_value_eur=7400000
quality_factor=0.4915
boost_factor=0.9995
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0120)blend_weight=0.012
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.8588
prior_reliability=0.1667
competition=La Liga
totalShots: 1.9634 -> 1.9773
wasFouled: 2.0173 -> 2.0096
interceptionWon: 0.4209 -> 0.4158
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Jesús Areso', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.434, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9317, 'skill_edge': -0.0025, 'height_edge': -0.044, 'attacker_skill': 0.4915, 'defender_skill': 0.497, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Jesús Areso', 'market_value': 5500000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.497}], 'xg_override': 0.2612}
totalShots: 1.9773 -> 1.8423
shotOffTarget: 1.1418 -> 1.0638
onTargetScoringAttempt: 0.8201 -> 0.7641
bigChanceMissed: 0.3636 -> 0.3388
goals: 0.3314 -> 0.3088
expectedGoals: 0.2803 -> 0.2612
expectedGoalsOnTarget: 0.2465 -> 0.2297
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 75.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2323
goal_rate=0.3088
scorer_weight=0.3047
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0624
assist_rate=0.0041
provider_weight=0.0515
-
Víctor GarcíaF7200.130.0782%10.66.846.333FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9969, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0079)blend_weight=0.0079
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.8042
prior_reliability=0.08
competition=La Liga
totalShots: 1.2384 -> 1.2286
totalCross: 4.0178 -> 4.0125
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Yuri Berchiche', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle', 'duel_win_rate': 0.464, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9765, 'skill_edge': 0.0, 'height_edge': -0.016, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'RW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Yuri Berchiche', 'market_value': 910000, 'role': 'LB', 'price_index': 0.7, 'adjusted_quality': 0.4374}], 'xg_override': 0.1259}
totalShots: 1.2353 -> 1.2063
shotOffTarget: 0.857 -> 0.8369
onTargetScoringAttempt: 0.3783 -> 0.3694
expectedGoalsOnTarget: 0.235 -> 0.2295
bigChanceMissed: 0.2219 -> 0.2167
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 72.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1196
goal_rate=0.1344
scorer_weight=0.1336
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0762
assist_rate=0.0
provider_weight=0.0634
-
Daniel RequenaM8800.090.03221%10.46.836.311FBref Prior M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9899, quality 0.437)market_value_eur=1500000
quality_factor=0.4374
boost_factor=0.9899
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.498, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0706, 'skill_edge': 0.0, 'height_edge': 0.048, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0885}
aerialWon: 0.4938 -> 1.2
totalShots: 1.0344 -> 1.1074
shotOffTarget: 0.6958 -> 0.7449
onTargetScoringAttempt: 0.3386 -> 0.3625
expectedGoals: 0.0827 -> 0.0885
goals: 0.0762 -> 0.0816
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 84.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0857
goal_rate=0.0816
scorer_weight=0.0851
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0414
assist_rate=0.0496
provider_weight=0.0466
-
Oriol ReyM8100.040.01459%10.26.835.630FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9969, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9969
reference_quality=0.505
history_matches=28
history_shrink=0.1515
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0197)blend_weight=0.0197
history_matches=28
season_overlap_discount=1.0
per90_to_match_factor=0.9039
prior_reliability=0.2
competition=La Liga
totalShots: 0.5439 -> 0.5332
totalCross: 0.4842 -> 0.4747
wasFouled: 0.6818 -> 0.6743
fouls: 1.1987 -> 1.2048
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.454, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0059, 'skill_edge': 0.0, 'height_edge': 0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0356}
aerialWon: 0.8458 -> 0.9
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 73.0)match_squad_rank=10
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0354
goal_rate=0.0534
scorer_weight=0.0435
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0386
assist_rate=0.0513
provider_weight=0.0455
-
Jon Ander OlasagastiM8400.090.09ok10.96.962.432XGBoost M_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9978, quality 0.437)market_value_eur=2700000
quality_factor=0.4374
boost_factor=0.9978
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iñigo Ruiz de Galarreta', 'matchup_zone': 'CDM vs CDM', 'duel_win_rate': 0.429, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0132, 'skill_edge': 0.001, 'height_edge': 0.008, 'attacker_skill': 0.4396, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Iñigo Ruiz de Galarreta', 'market_value': 1800000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4374}], 'xg_override': 0.0863}
aerialWon: 0.6155 -> 0.9
totalShots: 1.0516 -> 1.0655
shotOffTarget: 0.7215 -> 0.731
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
expected_assists: 0.1278 -> 0.1337
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 84.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0836
goal_rate=0.0779
scorer_weight=0.0819
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1251
assist_rate=0.1014
provider_weight=0.1138
-
Manuel SánchezD8800.000.0150%00.26.854.032XGBoost D_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9992, quality 0.479)market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9992
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 78.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0036
goal_rate=0.0019
scorer_weight=0.0035
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0602
assist_rate=0.019
provider_weight=0.0497
-
Aïssa MandiD8500.010.00ok00.16.837.711FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9908, quality 0.437)market_value_eur=1100000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0591)blend_weight=0.0591
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.9458
prior_reliability=0.2
competition=La Liga
wonTackle: 0.7918 -> 0.8382
fouls: 0.4414 -> 0.4153
interceptionWon: 1.1447 -> 1.1329
wasFouled: 0.7703 -> 0.762
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 79.0)match_squad_rank=7
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0051
goal_rate=0.0
scorer_weight=0.0046
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0076
assist_rate=0.0
provider_weight=0.0066
-
Adrián de la FuenteD8800.140.12ok21.57.064.931FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9987, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9987
reference_quality=0.505
history_matches=41
history_shrink=0.1087
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0141)blend_weight=0.0141
history_matches=41
season_overlap_discount=1.0
per90_to_match_factor=0.9767
prior_reliability=0.2
competition=La Liga
onTargetScoringAttempt: 0.8132 -> 0.8063
wonTackle: 0.7433 -> 0.7374
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Peio Canales', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
expected_assists: 0.112 -> 0.1171
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 86.0)match_squad_rank=1
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1337
goal_rate=0.2727
scorer_weight=0.1794
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1105
assist_rate=0.0022
provider_weight=0.0937
-
Jeremy ToljanD8500.030.01153%00.26.659.432FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9980, quality 0.437)market_value_eur=1900000
quality_factor=0.4374
boost_factor=0.998
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0035)blend_weight=0.0035
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9412
prior_reliability=0.0533
competition=La Liga
totalCross: 2.4902 -> 2.4979
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 74.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.031
goal_rate=0.0003
scorer_weight=0.0252
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0738
assist_rate=0.1999
provider_weight=0.0959
-
Mathew RyanG9000.000.00100%0.17.065.833FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9979, quality 0.437)market_value_eur=1700000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 3.0283 -> 3.05
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Maroan Sannadi, Robert Navarro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1434}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.11 (squad xG sum 1.0988, xG scale 1.0120, xA scale 1.0460, team xA 0.72 = 0.65 x lambda)scoreline_reset=true
team_lambda=1.112
squad_xg_sum=1.0988
squad_xa_sum=0.691
team_expected_assists=0.7228
team_xa_to_xg_ratio=0.65
shots_faced: 10.9 -> 11.4
expected_saves: 2.67 -> 2.79
high_pressure_saves: 0.91 -> 0.96
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.193
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.6864
-
Team totals11.11126.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Pablo Cunat CamposG4.4m10.9%Market-value substitute prior
Axel TapeD13.8m31.1%Market-value substitute prior
Matias MorenoD13.7m30.5%Market-value substitute prior
Carlos ÁlvarezM22.6m31.9%Market-value substitute prior
Enzo BardeliM22.1m50.5%Market-value substitute prior
Etta EyongF25.9m58.5%Market-value substitute prior

Athletic Club — projected line vs season baseline (4-2-3-1)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Maroan SannadiF6800.280.021024%20.26.625.715FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9947, quality 0.437)market_value_eur=2800000
quality_factor=0.4374
boost_factor=0.9947
reference_quality=0.505
history_matches=14
history_shrink=0.2632
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0046)blend_weight=0.0046
history_matches=14
season_overlap_discount=1.0
per90_to_match_factor=0.7506
prior_reliability=0.0267
competition=La Liga
totalShots: 1.5881 -> 1.5808
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Jeremy Toljan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.232, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.047, 'skill_edge': 0.0, 'height_edge': 0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2144}
totalShots: 1.5853 -> 1.6598
shotOffTarget: 0.9903 -> 1.0368
onTargetScoringAttempt: 0.595 -> 0.623
expectedGoals: 0.2048 -> 0.2144
goals: 0.1988 -> 0.2081
bigChanceMissed: 0.1202 -> 0.1258
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.2144 -> 0.2783
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 18 by projected rating, fifa_overall 77.0)match_squad_rank=18
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.2429
goal_rate=0.2081
scorer_weight=0.2717
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0295
assist_rate=0.0
provider_weight=0.0239
-
Robert NavarroF7610.270.12129%20.87.149.840XGBoost F_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9996, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9996
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Jeremy Toljan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.201, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.0013, 'skill_edge': 0.0249, 'height_edge': -0.024, 'attacker_skill': 0.4927, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.2093}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.2093 -> 0.2716
expected_assists: 0.1536 -> 0.164
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 76.0)match_squad_rank=5
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=1
goal_probability=0.2378
goal_rate=0.273
scorer_weight=0.3383
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1513
assist_rate=0.0
provider_weight=0.1312
-
Peio CanalesM8800.120.05159%10.66.936.19FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 1.0021, quality 0.519)market_value_eur=9700000
quality_factor=0.5189
boost_factor=1.0021
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0498)blend_weight=0.0498
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9822
prior_reliability=0.1533
competition=La Liga
onTargetScoringAttempt: 0.3642 -> 0.3886
wasFouled: 1.2339 -> 1.2575
totalCross: 2.0042 -> 1.9895
interceptionWon: 0.7206 -> 0.706
totalShots: 1.0396 -> 1.0519
fouls: 0.671 -> 0.6588
wonTackle: 1.0518 -> 1.042
goalAssist: 0.1231 -> 0.117
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Adrián de la Fuente', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.48, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0003, 'skill_edge': 0.0122, 'height_edge': -0.012, 'attacker_skill': 0.5189, 'defender_skill': 0.4918, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Adrián de la Fuente', 'market_value': 5200000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.4918}], 'xg_override': 0.0945}
aerialWon: 0.0 -> 0.9
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0945 -> 0.1226
expected_assists: 0.1102 -> 0.1177
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 73.0)match_squad_rank=8
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1154
goal_rate=0.1004
scorer_weight=0.1276
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.111
assist_rate=0.117
provider_weight=0.1227
-
Álex BerenguerF8400.160.07132%10.96.949.832FBref Prior F_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost F_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9981, quality 0.451)market_value_eur=4099999
quality_factor=0.4511
boost_factor=0.9981
reference_quality=0.505
history_matches=38
history_shrink=0.1163
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0116)blend_weight=0.0116
history_matches=38
season_overlap_discount=1.0
per90_to_match_factor=0.9373
prior_reliability=0.1533
competition=La Liga
totalShots: 1.2965 -> 1.3046
wasFouled: 0.9958 -> 0.989
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Aïssa Mandi, Jeremy Toljan', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 0.9561, 'skill_edge': 0.0061, 'height_edge': -0.036, 'attacker_skill': 0.4511, 'defender_skill': 0.4374, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Aïssa Mandi', 'market_value': 1100000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Jeremy Toljan', 'market_value': 1900000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}], 'xg_override': 0.125}
totalShots: 1.3046 -> 1.2473
shotOffTarget: 0.9033 -> 0.8636
onTargetScoringAttempt: 0.3979 -> 0.3804
expectedGoalsOnTarget: 0.1886 -> 0.1803
goals: 0.1432 -> 0.1369
expectedGoals: 0.1307 -> 0.125
bigChanceMissed: 0.1263 -> 0.1208
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.125 -> 0.1622
expected_assists: 0.1263 -> 0.1349
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 9 by projected rating, fifa_overall 81.0)match_squad_rank=9
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.1497
goal_rate=0.1369
scorer_weight=0.1732
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1262
assist_rate=0.0189
provider_weight=0.1079
-
Iñigo Ruiz de GalarretaM7000.060.02215%10.67.055.930FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9977, quality 0.437)market_value_eur=1800000
quality_factor=0.4374
boost_factor=0.9977
reference_quality=0.505
history_matches=40
history_shrink=0.1111
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0038)blend_weight=0.0038
history_matches=40
season_overlap_discount=1.0
per90_to_match_factor=0.7826
prior_reliability=0.0533
competition=La Liga
fouls: 1.9279 -> 1.9355
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.396, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9941, 'skill_edge': 0.0, 'height_edge': -0.004, 'attacker_skill': 0.4374, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0469}
aerialWon: 1.1363 -> 0.9
totalShots: 0.9331 -> 0.9276
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0469 -> 0.0609
expected_assists: 0.1381 -> 0.1475
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 82.0)match_squad_rank=6
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0591
goal_rate=0.0472
scorer_weight=0.0611
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.1371
assist_rate=0.0986
provider_weight=0.118
-
Beñat GerenabarrenaM7900.040.001240%10.16.836.211FBref Prior M_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost M_service raw output over 8 target models--
market_value_boostMarket-value quality scaling (boost 0.9945, quality 0.465)market_value_eur=5200000
quality_factor=0.4646
boost_factor=0.9945
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0414)blend_weight=0.0414
history_matches=6
season_overlap_discount=1.0
per90_to_match_factor=0.8832
prior_reliability=0.14
competition=La Liga
totalCross: 0.9183 -> 0.9847
interceptionWon: 1.8922 -> 1.9357
fouls: 2.2092 -> 2.2396
wonTackle: 1.6329 -> 1.6523
wasFouled: 1.4026 -> 1.4142
onTargetScoringAttempt: 0.1566 -> 0.1673
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Oriol Rey', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.409, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.0137, 'skill_edge': 0.0173, 'height_edge': -0.008, 'attacker_skill': 0.4759, 'defender_skill': 0.4374, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Oriol Rey', 'market_value': 1700000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.4374}], 'xg_override': 0.0293}
aerialWon: 0.6972 -> 0.9
totalShots: 0.5063 -> 0.5132
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0293 -> 0.038
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 80.0)match_squad_rank=11
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0373
goal_rate=0.0364
scorer_weight=0.0414
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0455
assist_rate=0.06
provider_weight=0.0548
-
Yuri BerchicheD8200.050.02164%10.97.153.827FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9976, quality 0.437)market_value_eur=910000
quality_factor=0.4374
boost_factor=0.9976
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0057)blend_weight=0.0057
history_matches=37
season_overlap_discount=1.0
per90_to_match_factor=0.9063
prior_reliability=0.0733
competition=La Liga
totalShots: 1.1492 -> 1.1566
wonTackle: 0.9959 -> 0.9903
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Víctor García', 'matchup_zone': 'Right Wing vs Left Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0419 -> 0.0544
expected_assists: 0.1701 -> 0.1816
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 79.0)match_squad_rank=2
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0529
goal_rate=0.0
scorer_weight=0.0435
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=1
assist_probability=0.1661
assist_rate=0.1756
provider_weight=0.1861
-
Aymeric LaporteD8800.080.07ok10.57.153.427FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9999, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=0.9999
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0141)blend_weight=0.0141
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.9723
prior_reliability=0.16
competition=La Liga
fouls: 1.0853 -> 1.0757
wonTackle: 0.783 -> 0.7891
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Petar Ratkov', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0622 -> 0.0807
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 84.0)match_squad_rank=3
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0775
goal_rate=0.0
scorer_weight=0.0646
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0158
assist_rate=0.0035
provider_weight=0.0131
-
Yeray ÁlvarezD7900.040.01166%10.26.736.520FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9937, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9937
reference_quality=0.505
history_matches=11
history_shrink=0.3125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0271)blend_weight=0.0271
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.8828
prior_reliability=0.1333
competition=La Liga
totalCross: 0.6179 -> 0.649
totalShots: 0.5305 -> 0.552
wonTackle: 0.656 -> 0.6382
wasFouled: 0.809 -> 0.799
goalAssist: 0.114 -> 0.1229
interceptionWon: 1.0561 -> 1.0634
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Petar Ratkov', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
expected_goals: 0.0281 -> 0.0365
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 77.0)match_squad_rank=13
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0358
goal_rate=0.0
scorer_weight=0.0292
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0174
assist_rate=0.1229
provider_weight=0.022
-
Jesús AresoD7900.010.01147%00.16.737.530FBref Prior D_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost D_service raw output over 7 target models--
market_value_boostMarket-value quality scaling (boost 0.9985, quality 0.468)market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9985
reference_quality=0.505
history_matches=32
history_shrink=0.1351
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0094)blend_weight=0.0094
history_matches=32
season_overlap_discount=1.0
per90_to_match_factor=0.8791
prior_reliability=0.1067
competition=La Liga
wasFouled: 0.5308 -> 0.5413
interceptionWon: 1.1346 -> 1.1291
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 16 by projected rating, fifa_overall 80.0)match_squad_rank=16
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv_filled
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0143
goal_rate=0.0
scorer_weight=0.0118
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0519
assist_rate=0.0223
provider_weight=0.0426
-
Unai SimónG9000.00-n/a0.07.157.931FBref Prior G_service
Step-by-step (10 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 1.0042, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0042
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0133)blend_weight=0.0133
history_matches=44
season_overlap_discount=1.0
per90_to_match_factor=1.0
prior_reliability=0.2
competition=La Liga
saves: 2.961 -> 2.9748
final_capStats clamped to historical constraints and shot-component identitystats_clamped=0
shot_identity_applied=false
-
enriched_model_outputModel output after duel-context enrichment (pre router post-processing)duel_context_applied=true
duel_context={'opponent_faced': 'Iván Romero, Petar Ratkov', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.1714}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 1 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=1
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.20 (squad xG sum 0.9247, xG scale 1.2978, xA scale 1.0679, team xA 0.96 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.2
squad_xg_sum=0.9247
squad_xa_sum=0.8989
team_expected_assists=0.96
team_xa_to_xg_ratio=0.8
shots_faced: 11.1 -> 10.6
expected_saves: 2.71 -> 2.6
high_pressure_saves: 0.94 -> 0.89
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 85.0)match_squad_rank=4
squad_role=starter
squad_rank_basis=projected_rating
affects_projection=false
ranking_source=sofascore_plus_fifa_csv
ranking_status=combined
-
integer_goal_projectionTeam scoreline allocation: 1 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=1
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.2595
-
integer_assist_projectionTeam scoreline allocation: 1 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)allocation_applied=true
team_assists=1
assists_allocated=0
assist_probability=0.0
provider_weight=0.0
squad_weight_total=0.8679
-
Team totals11.20126.9
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Alex PadillaG4.4m10.9%Market-value substitute prior
Dani VivianD14.3m33.0%Market-value substitute prior
Aitor ParedesD13.8m22.1%Market-value substitute prior
Mikel JauregizarM24.7m52.3%Market-value substitute prior
Oihan SancetM22.9m32.6%Market-value substitute prior
Nico WilliamsF25.8m62.0%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Jon Ander Olasagasti vs Peio Canales will be the pivotal duel. Total antagonist xG — Home: 0.81, Away: 0.72. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 48.8% / 51.2%, dominance ratio 0.48, key duel: Jon Ander Olasagasti vs Peio Canales
Iván Romero xG 0.26Víctor García xG 0.13Petar Ratkov xG 0.21Peio Canales xG 0.09Maroan Sannadi xG 0.21Robert Navarro xG 0.21

Summary

Antagonist matchup analysis for Levante vs Athletic Club. Most likely scoreline: 1-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Levante 0W-3D-7L vs Athletic Club over 10 meetings.
Tactical parity between 4-3-3 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Jon Ander Olasagasti vs Peio Canales will be the pivotal duel. Total antagonist xG — Home: 0.81, Away: 0.72. Home danger zone: Left Wing vs Right Back — Flank Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.


Generated 2026-10-21 13:39:23 UTC · Soccer prediction reporting