Soccer predictions: actual data vs predicted data

Slate 20261030 · 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
Villarreal vs Espanyol
LaLiga
2-1Villarreal52.7% / 22.9% / 24.4%58.6%58.7%0.741.85 / 1.19-pending

Match detail

Villarreal vs Espanyol

LaLiga · 20261030 · 4-4-2 vs 4-2-3-1
Predicted 2-1Winner: VillarrealWinning H 2-1 (9.7%)Winning A 1-2 (6.3%)Confidence 0.74λ home/away 1.85 / 1.19Most-likely P 9.7%
Actual vs predicted: result not available yet (upcoming fixture).
XGBoost Reasoning & FBref Dataset Tracing
Antagonist + XGBoost match analysis for Villarreal vs Espanyol. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 4-4-2 vs 4-2-3-1 (duel lambdas: Home 2.046, Away 1.214). Final calibrated Poisson lambdas: Home 1.848, Away 1.191 (most likely score 2-1).
Home Starters 11/11 XGBoost (8 FBref) Away Starters 11/11 XGBoost (7 FBref) Bench Modeled H: 7 / A: 7 Duel λ (H/A) 2.05 / 1.21 Final λ (H/A) 1.85 / 1.19
FBref Team Priors: Villarreal (Gls/90: 1.3333333333333333, GA/90: 1.33 → E[λ]: 1.649) vs Espanyol (Gls/90: 1.6666666666666667, GA/90: 1.67 → E[λ]: 1.642) | 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

MetricVillarrealEspanyol
League position10.0018.00
Points per game1.261.01
Attack index1.000.91
Defense (concede) index0.970.97
Form multiplier1.010.98
Standing λ multiplier0.990.95

Lambda decomposition (how the goal rates were built)

StageVillarreal λEspanyol λ
FBref Squad Prior E[λ] (weight 0.228)1.6491.642
Pre-competitive-floor2.1911.384
Pre-calibration (Micro-duels)2.0461.214
Final λ1.8481.191
competition calibration scale 0.85competition observed total goals 2.984quality gap applied Truemismatch score pressure applied Falsecompetitive underdog floor applied Falsestage discount 1.0

Scoreline distribution & markets

Top 5 scorelinesP
1-110.6%
2-19.7%
1-08.8%
2-08.2%
1-26.3%
Home win52.7%
Draw22.9%
Away win24.4%
Over 2.558.6%
BTTS yes58.7%
Pregame fair line — favorite Villarreal (52.7%), fair total 3.04, fair spread 0.66

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.

Villarreal — projected line vs season baseline (4-4-2)

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Georges MikautadzeF8410.530.3935%32.07.063.834FBref 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 1.0093, quality 0.796)market_value_eur=43000000
quality_factor=0.7957
boost_factor=1.0093
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0129)blend_weight=0.0129
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.9298
prior_reliability=0.1867
competition=La Liga
totalShots: 2.4169 -> 2.429
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': 'Leandro Cabrera, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.301, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1488, 'skill_edge': 0.1492, 'height_edge': -0.048, 'attacker_skill': 0.7957, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.422}
totalShots: 2.429 -> 2.7904
shotOffTarget: 1.269 -> 1.4578
onTargetScoringAttempt: 1.1505 -> 1.3217
expectedGoalsOnTarget: 0.5934 -> 0.6817
bigChanceMissed: 0.5785 -> 0.6646
goals: 0.3763 -> 0.4323
expectedGoals: 0.3673 -> 0.422
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.422 -> 0.5317
expected_assists: 0.093 -> 0.1172
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 79.0)match_squad_rank=6
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.4124
goal_rate=0.4323
scorer_weight=0.5433
-
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.1106
assist_rate=0.2227
provider_weight=0.1465
-
Gerard MorenoF7700.310.2239%21.37.057.729FBref 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.9972, quality 0.437)market_value_eur=2400000
quality_factor=0.4374
boost_factor=0.9972
reference_quality=0.505
history_matches=31
history_shrink=0.1389
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0090)blend_weight=0.009
history_matches=31
season_overlap_discount=1.0
per90_to_match_factor=0.8608
prior_reliability=0.1
competition=La Liga
fouls: 0.5412 -> 0.5519
wasFouled: 0.7727 -> 0.7657
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': 'Leandro Cabrera, Vanja Drkušić', '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.9354, 'skill_edge': -0.012, 'height_edge': -0.032, 'attacker_skill': 0.4374, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.2484}
totalShots: 1.8756 -> 1.7545
shotOffTarget: 1.2004 -> 1.1229
onTargetScoringAttempt: 0.6752 -> 0.6316
expectedGoalsOnTarget: 0.3383 -> 0.3164
expectedGoals: 0.2656 -> 0.2484
goals: 0.2587 -> 0.242
bigChanceMissed: 0.2216 -> 0.2073
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.2484 -> 0.313
expected_assists: 0.1057 -> 0.1332
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 81.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.2688
goal_rate=0.242
scorer_weight=0.3063
-
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.1247
assist_rate=0.0
provider_weight=0.1066
-
Alberto MoleiroF8010.410.16152%31.17.461.442FBref 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 1.0096, quality 0.837)market_value_eur=54000000
quality_factor=0.837
boost_factor=1.0096
reference_quality=0.505
history_matches=47
history_shrink=0.0962
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0067)blend_weight=0.0067
history_matches=47
season_overlap_discount=1.0
per90_to_match_factor=0.8926
prior_reliability=0.1067
competition=La Liga
totalShots: 2.7059 -> 2.6879
onTargetScoringAttempt: 1.2602 -> 1.2518
wonTackle: 0.6332 -> 0.6401
totalCross: 3.5651 -> 3.5599
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': 'Leandro Cabrera, Vanja Drkušić', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.308, 'pressing_faced': 'LOW', 'numerical_situation': '1v2', 'xg_multiplier': 1.1585, 'skill_edge': 0.1678, 'height_edge': -0.06, 'attacker_skill': 0.837, 'defender_skill': 0.464, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Leandro Cabrera', 'market_value': 930000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4374}, {'player': 'Vanja Drkušić', 'market_value': 5500000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.4907}], 'xg_override': 0.3257}
totalShots: 2.6974 -> 3.1249
shotOffTarget: 1.4456 -> 1.6747
onTargetScoringAttempt: 1.2518 -> 1.4502
bigChanceMissed: 0.5902 -> 0.6837
goals: 0.4049 -> 0.4691
expectedGoalsOnTarget: 0.3774 -> 0.4372
expectedGoals: 0.2811 -> 0.3257
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.3257 -> 0.4104
expected_assists: 0.1904 -> 0.24
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 79.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=1
goal_probability=0.3366
goal_rate=0.4691
scorer_weight=0.513
-
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.2134
assist_rate=0.328
provider_weight=0.3
-
Santi ComesañaM7000.080.07ok10.46.962.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 1.0000, quality 0.503)market_value_eur=8400000
quality_factor=0.5035
boost_factor=1.0
reference_quality=0.505
history_matches=43
history_shrink=0.1042
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0099)blend_weight=0.0099
history_matches=43
season_overlap_discount=1.0
per90_to_match_factor=0.779
prior_reliability=0.1467
competition=La Liga
fouls: 1.4729 -> 1.4794
wonTackle: 0.7787 -> 0.785
totalShots: 0.5823 -> 0.5765
wasFouled: 0.8838 -> 0.8785
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': 'Álex Calatrava', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.517, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.099, 'skill_edge': 0.0194, 'height_edge': 0.048, 'attacker_skill': 0.5146, 'defender_skill': 0.4716, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0642}
aerialWon: 0.2212 -> 1.2
totalShots: 0.5808 -> 0.6383
shotOffTarget: 0.4297 -> 0.4722
onTargetScoringAttempt: 0.1511 -> 0.1661
bigChanceMissed: 0.1353 -> 0.1487
expectedGoalsOnTarget: 0.0872 -> 0.0958
expectedGoals: 0.0584 -> 0.0642
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.0642 -> 0.0809
expected_assists: 0.0639 -> 0.0805
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 11 by projected rating, fifa_overall 79.0)match_squad_rank=11
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0777
goal_rate=0.0549
scorer_weight=0.0743
-
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.0773
assist_rate=0.0727
provider_weight=0.0867
-
Carlos MaciáM8200.060.011156%10.16.830.318FBref 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.0064, quality 0.574)market_value_eur=14500000
quality_factor=0.5737
boost_factor=1.0064
reference_quality=0.505
history_matches=11
history_shrink=0.3125
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0068)blend_weight=0.0068
history_matches=11
season_overlap_discount=1.0
per90_to_match_factor=0.9166
prior_reliability=0.0333
competition=La Liga
wonTackle: 1.0805 -> 1.1104
interceptionWon: 0.7584 -> 0.7657
fouls: 0.7869 -> 0.794
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': 'Álex Calatrava', 'matchup_zone': 'Central Mid vs Defensive Mid — Pressing/Creation Duel', 'duel_win_rate': 0.564, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 1.1673, 'skill_edge': 0.0538, 'height_edge': 0.06, 'attacker_skill': 0.5912, 'defender_skill': 0.4716, 'attacker_role': 'CM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Álex Calatrava', 'market_value': 4900000, 'role': 'CDM', 'price_index': 0.85, 'adjusted_quality': 0.4716}], 'xg_override': 0.0507}
aerialWon: 0.3626 -> 1.4
totalShots: 0.5746 -> 0.6708
shotOffTarget: 0.4289 -> 0.5007
onTargetScoringAttempt: 0.1457 -> 0.1701
goals: 0.0541 -> 0.0632
expectedGoals: 0.0434 -> 0.0507
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.0507 -> 0.0639
expected_assists: 0.0405 -> 0.051
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 12 by projected rating, fifa_overall 65.0)match_squad_rank=12
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0619
goal_rate=0.0632
scorer_weight=0.0718
-
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.0497
assist_rate=0.0497
provider_weight=0.0562
-
Tajon BuchananM7200.180.08115%21.06.958.233FBref 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.0017, quality 0.557)market_value_eur=13000000
quality_factor=0.557
boost_factor=1.0017
reference_quality=0.505
history_matches=42
history_shrink=0.1064
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0065)blend_weight=0.0065
history_matches=42
season_overlap_discount=1.0
per90_to_match_factor=0.8052
prior_reliability=0.0933
competition=La Liga
totalCross: 3.0137 -> 3.0277
wasFouled: 1.8946 -> 1.9046
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': 'Omar El Hilali', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel', 'duel_win_rate': 0.422, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9446, 'skill_edge': -0.0377, 'height_edge': 0.0, 'attacker_skill': 0.5731, 'defender_skill': 0.6569, 'attacker_role': 'LM', 'attacker_mv_price_index': 0.9, 'defender_adjusted_parts': [{'player': 'Omar El Hilali', 'market_value': 15900000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.6569}], 'xg_override': 0.1438}
aerialWon: 0.4572 -> 1.1
totalShots: 1.7996 -> 1.6999
shotOffTarget: 1.1419 -> 1.0786
onTargetScoringAttempt: 0.6577 -> 0.6213
goals: 0.1555 -> 0.1469
expectedGoals: 0.1522 -> 0.1438
bigChanceMissed: 0.1482 -> 0.14
expectedGoalsOnTarget: 0.0984 -> 0.0929
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.1438 -> 0.1812
expected_assists: 0.1516 -> 0.191
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 76.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.1657
goal_rate=0.1469
scorer_weight=0.1841
-
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.1739
assist_rate=0.1213
provider_weight=0.1623
-
Sergi CardonaD8600.030.01162%10.46.847.834FBref Prior 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 1.0000, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0
reference_quality=0.505
history_matches=37
history_shrink=0.119
-
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': 'Roberto Fernández', 'matchup_zone': 'Shape fallback'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.0256 -> 0.0323
expected_assists: 0.1243 -> 0.1566
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 79.0)match_squad_rank=13
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0318
goal_rate=0.0491
scorer_weight=0.0404
-
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.145
assist_rate=0.0095
provider_weight=0.1253
-
Renato VeigaD9000.020.01111%10.27.057.632FBref 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 1.0067, quality 0.710)market_value_eur=29000000
quality_factor=0.71
boost_factor=1.0067
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.9987
prior_reliability=0.2
competition=La Liga
wonTackle: 0.5659 -> 0.5579
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': 'Roberto Fernández', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_assists: 0.0779 -> 0.0982
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 78.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0197
goal_rate=0.0
scorer_weight=0.0159
-
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.0935
assist_rate=0.0779
provider_weight=0.0982
-
Juan FoythD7800.040.0270%10.37.053.913FBref 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 1.0001, quality 0.506)market_value_eur=8600000
quality_factor=0.5059
boost_factor=1.0001
reference_quality=0.505
history_matches=19
history_shrink=0.2083
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0271)blend_weight=0.0271
history_matches=19
season_overlap_discount=1.0
per90_to_match_factor=0.8703
prior_reliability=0.2
competition=La Liga
interceptionWon: 1.1314 -> 1.1558
totalShots: 0.5094 -> 0.527
wonTackle: 0.828 -> 0.8449
fouls: 0.6301 -> 0.6209
onTargetScoringAttempt: 0.0973 -> 0.1024
wasFouled: 0.3964 -> 0.4014
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': 'Edu Expósito', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.0334 -> 0.0421
expected_assists: 0.0391 -> 0.0493
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0412
goal_rate=0.0
scorer_weight=0.0337
-
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.0481
assist_rate=0.0
provider_weight=0.0394
-
Péter GulácsiG9000.00-n/a0.07.036.812FBref Prior G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9908, quality 0.437)market_value_eur=970000
quality_factor=0.4374
boost_factor=0.9908
reference_quality=0.505
history_matches=6
history_shrink=0.4545
-
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': 'Roberto Fernández, Álex Calatrava', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 1.2142}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
shots_faced: 11.5 -> 11.3
expected_saves: 2.81 -> 2.76
high_pressure_saves: 0.97 -> 0.95
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 5 by projected rating, fifa_overall 82.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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0
scorer_weight=0.0
squad_weight_total=1.9647
-
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=1.3182
-
Alexander FreemanD9000.050.01406%10.27.139.730XGBoost 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 1.0040, quality 0.566)market_value_eur=13800000
quality_factor=0.566
boost_factor=1.004
reference_quality=0.505
history_matches=18
history_shrink=0.2174
-
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': 'Roberto Fernández', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle'}
-
scoreline_resetTeam scoreline allocation: goal/assist counters reset to 0; the team's 2 goals are handed out as whole numbers by integer_goal_projection / integer_assist_projectionscoreline_reset=true
team_goals=2
-
team_lambda_rescalePlayer expected_goals/expected_assists rescaled to unconditional contributions so squad sum equals team lambda 1.85 (squad xG sum 1.4665, xG scale 1.2601, xA scale 1.2601, team xA 1.31 = 0.71 x lambda)scoreline_reset=true
team_lambda=1.848
squad_xg_sum=1.4665
squad_xa_sum=1.0421
team_expected_assists=1.3132
team_xa_to_xg_ratio=0.7106
expected_goals: 0.043 -> 0.0542
expected_assists: 0.0735 -> 0.0926
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 3 by projected rating, fifa_overall 81.0)match_squad_rank=3
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: 2 projected goals distributed by scorer weight (xG x finishing x appearance)team_goals=2
allocation_applied=true
goals_allocated=0
goal_probability=0.0528
goal_rate=0.235
scorer_weight=0.0678
-
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.0884
assist_rate=0.0
provider_weight=0.0741
-
Team totals21.85187.0
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Luiz JúniorG4.8m12.9%Market-value substitute prior
Carlos RomeroD14.5m23.6%Market-value substitute prior
Santiago MouriñoD14.3m23.2%Market-value substitute prior
Pape GueyeM23.3m33.4%Market-value substitute prior
Nathan-Dylan SalibaM22.5m52.2%Market-value substitute prior
Ilias AkhomachF20.4m72.7%Market-value substitute prior

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

PlayerPosMinProj GProj xGSeason xG/gProj ShSeason Sh/gProj RtgSeason RtgRecModel / FBref Prior
Roberto FernándezF8410.410.2755%21.56.862.933FBref 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 1.0038, quality 0.641)market_value_eur=21000000
quality_factor=0.6408
boost_factor=1.0038
reference_quality=0.505
history_matches=48
history_shrink=0.0943
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0119)blend_weight=0.0119
history_matches=48
season_overlap_discount=1.0
per90_to_match_factor=0.9359
prior_reliability=0.1933
competition=La Liga
totalOffside: 1.167 -> 1.1532
fouls: 1.9089 -> 1.8977
goals: 0.4192 -> 0.4257
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': 'Renato Veiga, Alexander Freeman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.9469, 'skill_edge': -0.0241, 'height_edge': -0.012, 'attacker_skill': 0.6408, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.3496}
totalShots: 2.2881 -> 2.1666
shotOffTarget: 1.3568 -> 1.2848
onTargetScoringAttempt: 0.9313 -> 0.8818
goals: 0.4257 -> 0.4031
bigChanceMissed: 0.4033 -> 0.3819
expectedGoals: 0.3692 -> 0.3496
expectedGoalsOnTarget: 0.3351 -> 0.3173
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_goals: 0.3496 -> 0.4135
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 8 by projected rating, fifa_overall 74.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=1
goal_probability=0.3387
goal_rate=0.4031
scorer_weight=0.4689
-
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.0413
assist_rate=0.0219
provider_weight=0.0343
-
Bryan ZaragozaF7700.110.12ok11.27.061.414XGBoost 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.9994, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9994
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
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': 'Renato Veiga, Alexander Freeman', 'matchup_zone': 'Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle', 'duel_win_rate': 0.18, 'pressing_faced': 'MEDIUM', 'numerical_situation': '1v2', 'xg_multiplier': 0.7784, 'skill_edge': -0.0907, 'height_edge': -0.06, 'attacker_skill': 0.4927, 'defender_skill': 0.6943, 'attacker_role': 'ST', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Renato Veiga', 'market_value': 29000000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.7736}, {'player': 'Alexander Freeman', 'market_value': 13800000, 'role': 'CB', 'price_index': 0.75, 'adjusted_quality': 0.615}], 'xg_override': 0.0895}
totalShots: 1.4191 -> 1.1046
shotOffTarget: 0.9186 -> 0.715
onTargetScoringAttempt: 0.5005 -> 0.3896
expectedGoalsOnTarget: 0.1725 -> 0.1343
goals: 0.1572 -> 0.1224
expectedGoals: 0.115 -> 0.0895
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_goals: 0.0895 -> 0.1058
expected_assists: 0.1275 -> 0.1401
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 4 by projected rating, fifa_overall 77.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.1004
goal_rate=0.1224
scorer_weight=0.1307
-
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.1307
assist_rate=0.0371
provider_weight=0.1121
-
Javier HernándezM7700.120.0772%11.06.755.713FBref 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.9974, quality 0.479)market_value_eur=6400000
quality_factor=0.4793
boost_factor=0.9974
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0361)blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8587
prior_reliability=0.1667
competition=La Liga
totalCross: 2.0106 -> 1.9504
wasFouled: 1.0497 -> 1.0986
fouls: 1.7738 -> 1.809
goalAssist: 0.2779 -> 0.3051
interceptionWon: 0.5857 -> 0.5645
totalShots: 1.3759 -> 1.3637
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': 'Santi Comesaña', 'matchup_zone': 'CAM vs CM', 'duel_win_rate': 0.358, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9088, 'skill_edge': -0.014, 'height_edge': -0.048, 'attacker_skill': 0.4834, 'defender_skill': 0.5146, 'attacker_role': 'CAM', 'attacker_mv_price_index': 0.95, 'defender_adjusted_parts': [{'player': 'Santi Comesaña', 'market_value': 8400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5146}], 'xg_override': 0.1025}
aerialWon: 0.1345 -> 0.9
totalShots: 1.3712 -> 1.2461
shotOffTarget: 0.9013 -> 0.8191
onTargetScoringAttempt: 0.4699 -> 0.427
goals: 0.1141 -> 0.1037
expectedGoals: 0.1128 -> 0.1025
expectedGoalsOnTarget: 0.0854 -> 0.0776
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_goals: 0.1025 -> 0.1212
expected_assists: 0.1383 -> 0.152
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 13 by projected rating, fifa_overall 86.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.1141
goal_rate=0.1037
scorer_weight=0.1222
-
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.141
assist_rate=0.3051
provider_weight=0.19
-
Álex CalatravaM7600.130.0936%11.26.855.812FBref 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.9956, quality 0.461)market_value_eur=4900000
quality_factor=0.4609
boost_factor=0.9956
reference_quality=0.505
history_matches=10
history_shrink=0.3333
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0361)blend_weight=0.0361
history_matches=10
season_overlap_discount=1.0
per90_to_match_factor=0.8432
prior_reliability=0.1667
competition=La Liga
fouls: 1.1742 -> 1.2049
onTargetScoringAttempt: 0.5056 -> 0.5358
wasFouled: 0.9373 -> 0.9156
totalShots: 1.5213 -> 1.5391
interceptionWon: 0.3462 -> 0.3581
goals: 0.1438 -> 0.1508
wonTackle: 1.5078 -> 1.5143
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': 'Santi Comesaña', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.333, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.901, 'skill_edge': -0.0194, 'height_edge': -0.048, 'attacker_skill': 0.4716, 'defender_skill': 0.5146, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Santi Comesaña', 'market_value': 8400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5146}], 'xg_override': 0.1078}
totalShots: 1.5515 -> 1.3979
shotOffTarget: 1.0157 -> 0.9151
aerialWon: 0.9722 -> 0.9
onTargetScoringAttempt: 0.5358 -> 0.4828
bigChanceMissed: 0.1939 -> 0.1747
goals: 0.1508 -> 0.1359
expectedGoals: 0.1196 -> 0.1078
expectedGoalsOnTarget: 0.0709 -> 0.0639
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_goals: 0.1078 -> 0.1275
expected_assists: 0.0884 -> 0.0972
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 7 by projected rating, fifa_overall 87.0)match_squad_rank=7
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.1197
goal_rate=0.1359
scorer_weight=0.1502
-
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.0926
assist_rate=0.086
provider_weight=0.0955
-
Gabriel MoscardoM6900.090.02497%10.26.727.612FBref 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.9981, quality 0.493)market_value_eur=7500000
quality_factor=0.4927
boost_factor=0.9981
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0108)blend_weight=0.0108
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.7636
prior_reliability=0.0333
competition=La Liga
onTargetScoringAttempt: 0.288 -> 0.3014
wonTackle: 0.5002 -> 0.5113
totalShots: 0.9174 -> 0.924
fouls: 0.5885 -> 0.5821
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': 'Santi Comesaña', 'matchup_zone': 'Holding Mid vs Central Mid — Midfield Anchor Duel', 'duel_win_rate': 0.389, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.9842, 'skill_edge': -0.0027, 'height_edge': -0.008, 'attacker_skill': 0.5085, 'defender_skill': 0.5146, 'attacker_role': 'CDM', 'attacker_mv_price_index': 0.85, 'defender_adjusted_parts': [{'player': 'Santi Comesaña', 'market_value': 8400000, 'role': 'CM', 'price_index': 0.9, 'adjusted_quality': 0.5146}], 'xg_override': 0.0778}
totalShots: 0.9308 -> 0.9161
shotOffTarget: 0.6294 -> 0.6195
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_goals: 0.0778 -> 0.092
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 15 by projected rating, fifa_overall 72.0)match_squad_rank=15
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.0879
goal_rate=0.0853
scorer_weight=0.0974
-
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.028
assist_rate=0.0401
provider_weight=0.0338
-
Edu ExpósitoM8300.110.0832%11.47.165.832FBref 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.9986, quality 0.456)market_value_eur=4500000
quality_factor=0.456
boost_factor=0.9986
reference_quality=0.505
history_matches=46
history_shrink=0.098
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0115)blend_weight=0.0115
history_matches=46
season_overlap_discount=1.0
per90_to_match_factor=0.9208
prior_reliability=0.18
competition=La Liga
totalCross: 4.1268 -> 4.0912
totalShots: 1.3283 -> 1.3486
fouls: 1.2427 -> 1.2363
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': 'Juan Foyth', 'matchup_zone': 'Left Wing vs Right Back — Flank Battle', 'duel_win_rate': 0.39, 'pressing_faced': 'LOW', 'numerical_situation': '1v1', 'xg_multiplier': 0.868, 'skill_edge': -0.0418, 'height_edge': -0.048, 'attacker_skill': 0.456, 'defender_skill': 0.5489, 'attacker_role': 'LW', 'attacker_mv_price_index': 1.0, 'defender_adjusted_parts': [{'player': 'Juan Foyth', 'market_value': 8600000, 'role': 'RB', 'price_index': 0.7, 'adjusted_quality': 0.5489}], 'xg_override': 0.0944}
totalShots: 1.3486 -> 1.1706
aerialWon: 0.7692 -> 0.9
shotOffTarget: 0.9196 -> 0.7982
onTargetScoringAttempt: 0.4079 -> 0.3541
goals: 0.1406 -> 0.122
expectedGoals: 0.1088 -> 0.0944
expectedGoalsOnTarget: 0.0883 -> 0.0766
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_goals: 0.0944 -> 0.1116
expected_assists: 0.1504 -> 0.1652
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 2 by projected rating, fifa_overall 77.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.1056
goal_rate=0.122
scorer_weight=0.1329
-
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.1523
assist_rate=0.0977
provider_weight=0.1322
-
Quilindschy HartmanD8700.020.01190%00.26.730.826FBref Prior 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 1.0017, quality 0.541)market_value_eur=11600000
quality_factor=0.5411
boost_factor=1.0017
reference_quality=0.505
history_matches=26
history_shrink=0.1613
-
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': 'Gerard Moreno', '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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_assists: 0.0723 -> 0.0795
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 14 by projected rating, fifa_overall 75.0)match_squad_rank=14
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.018
goal_rate=0.0
scorer_weight=0.0146
-
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.0764
assist_rate=0.1128
provider_weight=0.0994
-
Leandro CabreraD9000.080.06ok11.16.961.930XGBoost 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.9979, quality 0.437)market_value_eur=930000
quality_factor=0.4374
boost_factor=0.9979
reference_quality=0.505
history_matches=44
history_shrink=0.102
-
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': 'Georges Mikautadze', '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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_goals: 0.0675 -> 0.0798
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=0
goal_probability=0.0767
goal_rate=0.0061
scorer_weight=0.0638
-
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.0294
assist_rate=0.0
provider_weight=0.0238
-
Vanja DrkušićD8500.00-n/a00.06.723.212FBref 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.9945, quality 0.468)market_value_eur=5500000
quality_factor=0.4683
boost_factor=0.9945
reference_quality=0.505
history_matches=5
history_shrink=0.5
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0282)blend_weight=0.0282
history_matches=5
season_overlap_discount=1.0
per90_to_match_factor=0.9401
prior_reliability=0.0867
competition=La Liga
fouls: 0.5586 -> 0.604
wasFouled: 0.838 -> 0.8755
interceptionWon: 0.8702 -> 0.8457
wonTackle: 0.7267 -> 0.747
totalShots: 0.3686 -> 0.3582
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': 'Georges Mikautadze', '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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
-
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 10 by projected rating, fifa_overall 80.0)match_squad_rank=10
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.0
goal_rate=0.0
scorer_weight=0.001
-
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.0014
assist_rate=0.0
provider_weight=0.0014
-
Omar El HilaliD8900.00-n/a00.06.861.431FBref 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 1.0025, quality 0.589)market_value_eur=15900000
quality_factor=0.5889
boost_factor=1.0025
reference_quality=0.505
history_matches=45
history_shrink=0.1
-
fbref_prior_blendFBref 2026-27 prior blended (weight 0.0130)blend_weight=0.013
history_matches=45
season_overlap_discount=1.0
per90_to_match_factor=0.9856
prior_reliability=0.2
competition=La Liga
wasFouled: 0.7143 -> 0.705
wonTackle: 1.2058 -> 1.1987
totalCross: 3.0907 -> 3.0975
totalShots: 0.4036 -> 0.3984
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': 'Tajon Buchanan', 'matchup_zone': 'Left Mid vs Right Back — Wide Channel'}
-
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
expected_assists: 0.1149 -> 0.1263
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 6 by projected rating, fifa_overall 75.0)match_squad_rank=6
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
goal_rate=0.0
scorer_weight=0.001
-
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.1186
assist_rate=0.0778
provider_weight=0.101
-
Ángel FortuñoG9000.00-n/a0.07.29.333XGBoost G_service
Step-by-step (9 steps)
StepDescriptionKey paramsChanges
xgboost_rawXGBoost G_service raw output over 3 target models--
market_value_boostMarket-value quality scaling (boost 0.9887, quality 0.437)market_value_eur=290000
quality_factor=0.4374
boost_factor=0.9887
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': 'Georges Mikautadze, Alberto Moleiro', 'matchup_zone': 'Goalkeeper shot-stopping context', 'opponent_lambda': 2.046}
-
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.19 (squad xG sum 1.0072, xG scale 1.1825, xA scale 1.0990, team xA 0.95 = 0.80 x lambda)scoreline_reset=true
team_lambda=1.191
squad_xg_sum=1.0072
squad_xa_sum=0.867
team_expected_assists=0.9528
team_xa_to_xg_ratio=0.8
shots_faced: 19.4 -> 17.6
expected_saves: 4.74 -> 4.31
high_pressure_saves: 1.64 -> 1.48
rankings_attachedDisplay-only provenance: no published number changes. Global ranking attached (match squad rank 1 by projected rating, fifa_overall 89.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.0
scorer_weight=0.0
squad_weight_total=1.3186
-
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.9085
-
Team totals11.19116.8
Bench Candidates (7 modeled substitutes with empirical playing time)
PlayerPosExp MinApp ProbSubstitute Modeling Details
Marko DmitrovićG4.4m13.1%Market-value substitute prior
Clemens RiedelD13.6m21.8%Market-value substitute prior
Unai NúñezD13.6m21.7%Market-value substitute prior
Urko GonzálezM22.4m31.5%Market-value substitute prior
Cyril NgongeM22.2m50.7%Market-value substitute prior
Tyrhys DolanF25.7m34.2%Market-value substitute prior
Antagonist / tactical summary
Midfield is evenly contested — Carlos Maciá vs Gabriel Moscardo will be the pivotal duel. Total antagonist xG — Home: 1.25, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.
Midfield — possession 50.3% / 49.7%, dominance ratio 0.52, key duel: Carlos Maciá vs Gabriel Moscardo
Georges Mikautadze xG 0.42Alberto Moleiro xG 0.33Gerard Moreno xG 0.25Edu Expósito xG 0.09Javier Hernández xG 0.10Roberto Fernández xG 0.35

Summary

Antagonist matchup analysis for Villarreal vs Espanyol. Most likely scoreline: 2-1. Lambdas derived from 6 home and 6 away individual player duels. Head-to-head: Villarreal 8W-1D-1L vs Espanyol over 10 meetings.
Tactical parity between 4-4-2 and 4-2-3-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Carlos Maciá vs Gabriel Moscardo will be the pivotal duel. Total antagonist xG — Home: 1.25, Away: 0.82. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.


Generated 2026-10-30 13:38:28 UTC · Soccer prediction reporting