{
  "match_info": {
    "home_team": "Fulham",
    "away_team": "Man Utd",
    "tournament": "Premier League",
    "date": "20260920",
    "timezone": "America/New_York",
    "home_formation": "3-5-2",
    "away_formation": "3-4-2-1",
    "lineup_status": "projected_from_squad",
    "lineup_source": "/teams/get-squad",
    "lineup_confirmed": false,
    "lineup_confidence": 0.45
  },
  "prediction": {
    "most_likely_score": "1-3",
    "home_goals": 1,
    "away_goals": 3,
    "most_likely_score_probability": 0.0817,
    "match_resolution": "regulation",
    "predicted_winner": "Man Utd",
    "tiebreaker": {
      "applies": false,
      "method": "none",
      "regulation_draw_probability": 0.1397,
      "shootout_home_win_probability": null,
      "shootout_away_win_probability": null,
      "penalty_home_goals": null,
      "penalty_away_goals": null,
      "penalty_score": null,
      "penalty_winner": null,
      "penalty_winner_goals": null,
      "penalty_loser_goals": null,
      "penalty_result": null,
      "home_advance_probability": null,
      "away_advance_probability": null,
      "projected_winner": null,
      "projected_winner_probability": null,
      "final_score_after_penalties": null,
      "reason": "Tie-breaker not required for this match context."
    },
    "top_5_scorelines": [
      {
        "score": "1-3",
        "probability": 0.0817
      },
      {
        "score": "1-2",
        "probability": 0.0815
      },
      {
        "score": "0-3",
        "probability": 0.0711
      },
      {
        "score": "0-2",
        "probability": 0.0709
      },
      {
        "score": "1-4",
        "probability": 0.0614
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.0159,
      "0-1": 0.047,
      "0-2": 0.0709,
      "0-3": 0.0711,
      "0-4": 0.0534,
      "0-5": 0.0321,
      "0-6": 0.0161,
      "0-7": 0.0069,
      "0-8": 0.0026,
      "0-9": 0.0009,
      "1-0": 0.0178,
      "1-1": 0.0545,
      "1-2": 0.0815,
      "1-3": 0.0817,
      "1-4": 0.0614,
      "1-5": 0.0369,
      "1-6": 0.0185,
      "1-7": 0.0079,
      "1-8": 0.003,
      "1-9": 0.001,
      "2-0": 0.0104,
      "2-1": 0.0312,
      "2-2": 0.0468,
      "2-3": 0.0469,
      "2-4": 0.0353,
      "2-5": 0.0212,
      "2-6": 0.0106,
      "2-7": 0.0046,
      "2-8": 0.0017,
      "2-9": 0.0006,
      "3-0": 0.004,
      "3-1": 0.0119,
      "3-2": 0.0179,
      "3-3": 0.018,
      "3-4": 0.0135,
      "3-5": 0.0081,
      "3-6": 0.0041,
      "3-7": 0.0017,
      "3-8": 0.0007,
      "4-0": 0.0011,
      "4-1": 0.0034,
      "4-2": 0.0052,
      "4-3": 0.0052,
      "4-4": 0.0039,
      "4-5": 0.0023,
      "4-6": 0.0012,
      "4-7": 0.0005,
      "5-1": 0.0008,
      "5-2": 0.0012,
      "5-3": 0.0012,
      "5-4": 0.0009,
      "5-5": 0.0005
    },
    "outcome": {
      "home_win": 0.1135,
      "draw": 0.1397,
      "away_win": 0.7468
    },
    "markets": {
      "over_2_5_goals": 0.7835,
      "under_2_5_goals": 0.2165,
      "btts_yes": 0.6494,
      "btts_no": 0.3506,
      "home_clean_sheet": 0.0495,
      "away_clean_sheet": 0.317
    },
    "home_ratings": {
      "DR": 7.19,
      "MCR": 7.33,
      "ATR": 6.75,
      "GK": 6.7
    },
    "away_ratings": {
      "DR": 7.3,
      "MCR": 7.68,
      "ATR": 7.64,
      "GK": 7.38
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Fulham vs Man Utd. Most likely scoreline: 1-3. Lambdas derived from 6 home and 7 away individual player duels.",
      "key_player": "Projected scorer(s): Gonzalo García, Matheus Cunha, Benjamin Šeško, Bryan Mbeumo",
      "tactical_analysis": "Tactical parity between 3-5-2 and 3-4-2-1. Match outcome driven primarily by individual player quality. Midfield is evenly contested — Hugo Larsson vs Kobbie Mainoo will be the pivotal duel. Total antagonist xG — Home: 0.61, Away: 1.42. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs Centre Back — Half-Space Threat."
    },
    "confidence": 0.66,
    "home_lambda": 1.149,
    "away_lambda": 3.006,
    "modal_scoreline": null,
    "modal_scoreline_probability": null,
    "headline_policy": null
  },
  "pregame_baseline": {
    "fair_win_probability": {
      "home_win": 0.1135,
      "draw": 0.1397,
      "away_win": 0.7468
    },
    "favorite": "Man Utd",
    "favorite_win_probability": 0.7468,
    "fair_spread": -1.857,
    "fair_total": 4.155,
    "prop_estimates": [
      {
        "market": "team_total_goals",
        "selection": "Fulham",
        "estimate": 1.149,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "team_total_goals",
        "selection": "Man Utd",
        "estimate": 3.006,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "over_2_5_goals",
        "selection": "yes",
        "estimate": 2.5,
        "probability": 0.7835,
        "unit": "probability"
      },
      {
        "market": "both_teams_to_score",
        "selection": "yes",
        "estimate": 1.0,
        "probability": 0.6494,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Fulham",
        "estimate": 1.0,
        "probability": 0.0495,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Man Utd",
        "estimate": 1.0,
        "probability": 0.317,
        "unit": "probability"
      },
      {
        "market": "anytime_goal",
        "selection": "Joshua King (Fulham)",
        "estimate": 0.2207,
        "probability": 0.1207,
        "unit": "xG"
      },
      {
        "market": "anytime_goal",
        "selection": "Bryan Mbeumo (Man Utd)",
        "estimate": 0.778,
        "probability": 0.6983,
        "unit": "xG"
      },
      {
        "market": "assist",
        "selection": "Oscar Bobb (Fulham)",
        "estimate": 0.1505,
        "probability": 0.2354,
        "unit": "xA"
      },
      {
        "market": "assist",
        "selection": "Carlos Baleba (Man Utd)",
        "estimate": 0.213,
        "probability": 0.2496,
        "unit": "xA"
      }
    ],
    "expected_pace": {
      "tempo": "high",
      "expected_total_goals": 4.155,
      "expected_total_shots": 35,
      "expected_total_passes": 1023,
      "expected_pressing_actions_per_90": 15.9,
      "possession_home_pct": 48.9,
      "possession_away_pct": 51.1,
      "notes": "possession projects near even"
    },
    "expected_game_script": {
      "favorite": "Man Utd",
      "favorite_win_probability": 0.7468,
      "script": "Man Utd is the fair winner side, but the baseline remains favorite-led: fair spread -1.86 goals and fair total 4.16.",
      "first_half": "Expect high tempo while both sides test the matchup thesis; shot baseline is about 18 first-half attempts.",
      "second_half": "If level after halftime, midfield control and bench quality should decide territory; Fulham must keep the match inside one goal.",
      "late_game": "A Man Utd lead likely shifts toward control and counters; a draw state keeps set pieces and transition chances live."
    },
    "key_matchup_thesis": "Man Utd chance creation leans on Bryan Mbeumo against Calvin Bassey in Shadow Striker vs Centre Back — Half-Space Threat; possession projects near even.",
    "expected_rotation_usage_behavior": [
      "Fulham: starters carry the main goal usage through Gonzalo García; bench watchlist: Ryan Sessegnon, Emile Smith Rowe, Jonah Kusi-Asare.",
      "Man Utd: starters carry the main goal usage through Matheus Cunha, Benjamin Šeško, Bryan Mbeumo; bench watchlist: Marcus Rashford, Joshua Zirkzee.",
      "Assist usage should flow through Oscar Bobb, Carlos Baleba; late lineup changes should re-score these allocations."
    ],
    "pregame_play_by_play": [
      "0-15: Man Utd tries to establish the projected edge; track possession and first-shot share.",
      "15-45: Baseline expects high tempo, about 18 total first-half shots, and 2.08 first-half xG pace.",
      "45-70: If the match is level, watch midfield control and the listed bench watchlists for usage changes.",
      "70-90: If Fulham is chasing, transition and set-piece volume become the primary live deviation signal; a draw state keeps set pieces and transition chances live."
    ],
    "invalidation_triggers": [
      "Early red card, injury, or goalkeeper change for Man Utd.",
      "Fulham wins the midfield/territory battle beyond the possession baseline.",
      "Pace collapses: first 25 minutes fall well below the shot and box-entry baseline.",
      "Set pieces, penalties, or second balls create more danger than the open-play matchup thesis."
    ],
    "top_3_risk_factors": [
      {
        "factor": "Low-event scoring variance",
        "impact": "One penalty, deflection, or missed big chance can overwhelm the fair win probability."
      },
      {
        "factor": "Late lineup or role change",
        "impact": "A pregame XI, injury, or tactical role shift can invalidate player prop and usage estimates."
      },
      {
        "factor": "Discipline and set-piece volatility",
        "impact": "Cards, fouls in dangerous zones, and corner volume can change the expected game script quickly."
      }
    ]
  },
  "teams": {
    "Fulham": {
      "formation": "3-5-2",
      "players": {
        "Bernd Leno": {
          "player_id": 103335,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 190,
          "market_value": 5500000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.0174,
            "rating": 6.7002,
            "minutes": 89,
            "total_pass": 43,
            "accurate_pass": 34,
            "duels_won": 0,
            "total_long_balls": 12,
            "accurate_long_balls": 3,
            "touches": 52,
            "clearances": 0,
            "ball_recovery": 8,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 2,
            "possession_lost": 9.2413,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 32,
            "accurate_own_half_passes": 31,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "total_shots": 0,
            "shots_on_target": 0,
            "goalsAgainst": 2.0,
            "shotsOnTargetAgainst": 5.0,
            "cleanSheets": 0.0,
            "interceptions": 0,
            "tackles_won": 0,
            "crosses_total": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "penaltySave": 0.0,
            "ownGoals": 0.0,
            "savePct": 60.0,
            "cleanSheetPct": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "expected_saves": 2.97,
            "high_pressure_saves": 1.13,
            "shots_faced": 6.4,
            "opponent_faced": "Bryan Mbeumo, Matheus Cunha",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0022,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 39,
                "ball_recovery": 8,
                "saves": 2,
                "goals_prevented": -0.4348
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assists": 0,
                "expected_assists": 0.0005,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 30,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 8,
                "saves": 3,
                "goals_prevented": 0.3319
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assists": 0,
                "expected_assists": 0.0023,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 34,
                "clearances": 1,
                "ball_recovery": 9,
                "saves": 3,
                "goals_prevented": -0.9787
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1549,
            "combined_rank_score": 633.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 416.0,
            "sofascore_rating": 6.9263,
            "sofascore_appearances": 38.0,
            "fifa_rank": 850.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "projected_match_rating": 6.7002,
            "source_file": "data/player_rankings.csv",
            "player_name": "Bernd Leno",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Alisher Salimov",
                  "ranking": 1544
                },
                {
                  "player_name": "Bu-Seong Jang",
                  "ranking": 1545
                },
                {
                  "player_name": "Her Dong-min",
                  "ranking": 1546
                },
                {
                  "player_name": "Filip Jørgensen",
                  "ranking": 1547
                },
                {
                  "player_name": "Olivier Boscagli",
                  "ranking": 1548
                }
              ],
              "lower": [
                {
                  "player_name": "Fredrik Aursnes",
                  "ranking": 1550
                },
                {
                  "player_name": "Yuri Berchiche",
                  "ranking": 1551
                },
                {
                  "player_name": "Óscar Trejo",
                  "ranking": 1552
                },
                {
                  "player_name": "Han Jong-Mu",
                  "ranking": 1553
                },
                {
                  "player_name": "Eli Junior Kroupi",
                  "ranking": 1554
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.457,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "G_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "accurateLongBalls",
              "totalOwnHalfPasses",
              "accurateOwnHalfPasses",
              "saves",
              "savedShotsFromInsideTheBox",
              "goodHighClaim",
              "punches",
              "aerialWon",
              "totalKeeperSweeper",
              "accurateKeeperSweeper",
              "totalClearance",
              "ballRecovery",
              "touches",
              "possessionLostCtrl",
              "kilometersCovered",
              "passValueNormalized",
              "defensiveValueNormalized",
              "goalkeeperValueNormalized",
              "pass_accuracy",
              "long_ball_accuracy",
              "save_contribution",
              "inside_box_save_rate",
              "sweeper_accuracy",
              "sweeper_actions_p90",
              "distribution_accuracy",
              "commanding_index",
              "gk_coverage",
              "history_matches"
            ],
            "targets_predicted": [
              "saves",
              "goalsPrevented",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.457,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9905,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 180.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.1333
            },
            "rationale": "XGBoost regressor (G_service) evaluated 3 historical appearances across 3 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.13, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0175,
                "rating": 6.7645,
                "minutes": 90,
                "total_pass": 44,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 53,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.33,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 32
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:40.064367+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 113,
                    "rows": 393
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "sweeper_actions_p90": 0.3887,
                  "touches": 52.4772,
                  "totalOwnHalfPasses": 32.829,
                  "punches": 0.6113,
                  "distribution_accuracy": 0.978,
                  "accurateKeeperSweeper": 0.3887
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.8224308490753174,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0587
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0534
                      },
                      {
                        "name": "touches",
                        "importance": 0.0497
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.049
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": 2.9806,
                      "items": [
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.1333
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0529
                        },
                        {
                          "name": "sweeper_accuracy",
                          "contribution": -0.027
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0226
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.022
                        }
                      ],
                      "others": 0.0556,
                      "total": 2.8224
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.017546117305755615,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.053
                      },
                      {
                        "name": "punches",
                        "importance": 0.051
                      },
                      {
                        "name": "touches",
                        "importance": 0.0482
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0468
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0432
                      }
                    ],
                    "decomposition": {
                      "base": -0.0536,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1006
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0931
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.059
                        },
                        {
                          "name": "commanding_index",
                          "contribution": -0.0461
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0431
                        }
                      ],
                      "others": 0.0938,
                      "total": 0.0175
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.764498233795166,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0593
                      },
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0484
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0468
                      },
                      {
                        "name": "punches",
                        "importance": 0.0464
                      }
                    ],
                    "decomposition": {
                      "base": 7.0716,
                      "items": [
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0935
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0876
                        },
                        {
                          "name": "commanding_index",
                          "contribution": -0.0809
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.079
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.051
                        }
                      ],
                      "others": -0.0731,
                      "total": 6.7645
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 0.9905, quality 0.468)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31
              },
              "params": {
                "market_value_eur": 5500000,
                "quality_factor": 0.4683,
                "boost_factor": 0.9905
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 2.0,
                "shotsOnTargetAgainst": 5.0,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 60.0,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 3,
                "prior_reliability": 0.1333,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "saves",
                  "before": 2.7956,
                  "after": 2.8067
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 2.0,
                "shotsOnTargetAgainst": 5.0,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 60.0,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 2.0,
                "shotsOnTargetAgainst": 5.0,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 60.0,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 2.97,
                "high_pressure_saves": 1.13,
                "shots_faced": 6.4,
                "opponent_faced": "Bryan Mbeumo, Matheus Cunha",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Bryan Mbeumo, Matheus Cunha",
                  "matchup_zone": "Goalkeeper shot-stopping context"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 2.0,
                "shotsOnTargetAgainst": 5.0,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 60.0,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 2.97,
                "high_pressure_saves": 1.13,
                "shots_faced": 6.4,
                "opponent_faced": "Bryan Mbeumo, Matheus Cunha",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 79.0)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 2.0,
                "shotsOnTargetAgainst": 5.0,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 60.0,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 2.97,
                "high_pressure_saves": 1.13,
                "shots_faced": 6.4,
                "opponent_faced": "Bryan Mbeumo, Matheus Cunha",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1549,
                "fifa_rank": 850.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 2.0,
                "shotsOnTargetAgainst": 5.0,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 60.0,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 2.97,
                "high_pressure_saves": 1.13,
                "shots_faced": 6.4,
                "opponent_faced": "Bryan Mbeumo, Matheus Cunha",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 10.0956,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0174,
                "rating": 6.7002,
                "minutes": 89,
                "total_pass": 43,
                "accurate_pass": 34,
                "duels_won": 0,
                "total_long_balls": 12,
                "accurate_long_balls": 3,
                "touches": 52,
                "clearances": 0,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 9.2413,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 31,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 2.0,
                "shotsOnTargetAgainst": 5.0,
                "cleanSheets": 0.0,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.0,
                "ownGoals": 0.0,
                "savePct": 60.0,
                "cleanSheetPct": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "expected_saves": 2.97,
                "high_pressure_saves": 1.13,
                "shots_faced": 6.4,
                "opponent_faced": "Bryan Mbeumo, Matheus Cunha",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 10.5792,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            }
          ]
        },
        "Calvin Bassey": {
          "player_id": 861972,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 3,
          "height": 185,
          "market_value": 29000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 7.3711,
            "minutes": 95,
            "total_pass": 93,
            "accurate_pass": 84,
            "duels_won": 4,
            "total_long_balls": 11,
            "accurate_long_balls": 7,
            "total_own_half_passes": 50,
            "accurate_own_half_passes": 47,
            "total_opp_half_passes": 43,
            "accurate_opp_half_passes": 37,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 106,
            "possession_lost": 10.63,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 2,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 2,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0213,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 38,
            "total_progression": 161,
            "progressive_carries": 3,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.5,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 2.2,
            "tackles_won_in_zone": 1.7,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.477,
            "opponent_faced": "Matheus Cunha",
            "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0212,
            "projected_assists": 0,
            "assist_probability": 0.0125,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0395,
                "total_shots": 0,
                "total_pass": 95,
                "accurate_pass": 87,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.0104,
                "total_shots": 0,
                "total_pass": 78,
                "accurate_pass": 70,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0168,
                "expected_assists": 0.0229,
                "total_shots": 1,
                "total_pass": 89,
                "accurate_pass": 81,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2274,
            "combined_rank_score": 831.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 559.0,
            "sofascore_rating": 6.8133,
            "sofascore_appearances": 30.0,
            "fifa_rank": 1103.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 7.3711,
            "source_file": "data/player_rankings.csv",
            "player_name": "Calvin Bassey",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Andoni Gorosabel",
                  "ranking": 2269
                },
                {
                  "player_name": "Jeong-Yeon Wu",
                  "ranking": 2270
                },
                {
                  "player_name": "Leo Román",
                  "ranking": 2271
                },
                {
                  "player_name": "Mathías Olivera",
                  "ranking": 2272
                },
                {
                  "player_name": "Luis Suárez",
                  "ranking": 2273
                }
              ],
              "lower": [
                {
                  "player_name": "Shahzod Akramov",
                  "ranking": 2275
                },
                {
                  "player_name": "Yves Bissouma",
                  "ranking": 2276
                },
                {
                  "player_name": "Nuriddin  Nuriddinov",
                  "ranking": 2277
                },
                {
                  "player_name": "Kim Min-Ho",
                  "ranking": 2278
                },
                {
                  "player_name": "Manuel Ugarte",
                  "ranking": 2279
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.457,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.457,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.063,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 180.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.5,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.1333
            },
            "rationale": "XGBoost regressor (D_service) evaluated 3 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.13, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9343,
                "minutes": 90,
                "total_pass": 87,
                "accurate_pass": 79,
                "duels_won": 4,
                "total_long_balls": 10,
                "accurate_long_balls": 6,
                "total_own_half_passes": 47,
                "accurate_own_half_passes": 45,
                "total_opp_half_passes": 40,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 100,
                "possession_lost": 10.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 36,
                "total_progression": 151,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "touches_p90": 99.7046,
                  "accuratePass": 79.6978,
                  "possessionLostCtrl": 9.793,
                  "totalClearance": 2.553,
                  "totalClearance_p90": 2.553
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9911429286003113,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0421
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0327
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0238
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0225
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0181
                        }
                      ],
                      "others": -0.0227,
                      "total": 0.9911
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2143769264221191,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.068
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0554
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0396
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0348
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0315
                        }
                      ],
                      "others": 0.0092,
                      "total": 1.2144
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7543915510177612,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0684
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0544
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0431
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0365
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0298
                        }
                      ],
                      "others": 0.0329,
                      "total": 0.7544
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.041929244995117,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.4533
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.2272
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.2383
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.253
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.2258
                        }
                      ],
                      "others": 0.1477,
                      "total": 4.0419
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.2636940479278564,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.1126
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0425
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0421
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0434
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0396
                        }
                      ],
                      "others": 0.0516,
                      "total": 1.2637
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.31271323561668396,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "touches_p90",
                          "contribution": -0.0451
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0422
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0244
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0237
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0207
                        }
                      ],
                      "others": -0.1206,
                      "total": 0.3127
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.934267044067383,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": 0.1006
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0597
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0318
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0235
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0225
                        }
                      ],
                      "others": 0.0335,
                      "total": 6.9343
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0630, quality 0.710)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 29000000,
                "quality_factor": 0.71,
                "boost_factor": 1.063
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 3,
                "prior_reliability": 0.1333,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wonTackle",
                  "before": 0.8019,
                  "after": 0.7856
                },
                {
                  "stat": "wasFouled",
                  "before": 1.7752,
                  "after": 1.7603
                },
                {
                  "stat": "totalShots",
                  "before": 0.3324,
                  "after": 0.3415
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.477,
                "opponent_faced": "Matheus Cunha",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Matheus Cunha",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.477,
                "opponent_faced": "Matheus Cunha",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 3, fifa_overall 78.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.477,
                "opponent_faced": "Matheus Cunha",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2274,
                "fifa_rank": 1103.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.477,
                "opponent_faced": "Matheus Cunha",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0212,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0212,
                "scorer_weight": 0.214,
                "squad_weight_total": 10.0956,
                "weight_share": 0.0212,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.3711,
                "minutes": 95,
                "total_pass": 93,
                "accurate_pass": 84,
                "duels_won": 4,
                "total_long_balls": 11,
                "accurate_long_balls": 7,
                "total_own_half_passes": 50,
                "accurate_own_half_passes": 47,
                "total_opp_half_passes": 43,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 106,
                "possession_lost": 10.63,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0213,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 38,
                "total_progression": 161,
                "progressive_carries": 3,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.5,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 2.2,
                "tackles_won_in_zone": 1.7,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.9,
                "defensive_success_rate": 0.477,
                "opponent_faced": "Matheus Cunha",
                "pressing_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0212,
                "projected_assists": 0,
                "assist_probability": 0.0125,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0125,
                "provider_weight": 0.1317,
                "squad_weight_total": 10.5792,
                "weight_share": 0.0125,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Antonee Robinson": {
          "player_id": 803174,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 33,
          "height": 183,
          "market_value": 24000000,
          "stats": {
            "interceptions": 1,
            "tackles": 2,
            "tackles_won": 2,
            "clearances": 2,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 7.0329,
            "minutes": 88,
            "total_pass": 52,
            "accurate_pass": 42,
            "duels_won": 5,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 17,
            "total_opp_half_passes": 31,
            "accurate_opp_half_passes": 25,
            "crosses_total": 4,
            "crosses_accurate": 0,
            "touches": 75,
            "possession_lost": 16.8089,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_lost": 2,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.063,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 16,
            "total_progression": 84,
            "progressive_carries": 2,
            "key_pass": 0,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 95.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.1,
            "tackles_won_in_zone": 1.0,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.4,
            "defensive_success_rate": 0.67,
            "opponent_faced": "Benjamin Šeško",
            "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0202,
            "projected_assists": 0,
            "assist_probability": 0.0171,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 79,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.0791,
                "expected_assists": 0.1044,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 50,
                "accurate_pass": 43,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.024,
                "total_shots": 0,
                "total_pass": 49,
                "accurate_pass": 38,
                "tackles": 3,
                "tackles_won": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 82,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.133,
                "expected_assists": 0.0405,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 50,
                "accurate_pass": 38,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 876,
            "combined_rank_score": 413.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 157.0,
            "sofascore_rating": 7.3,
            "sofascore_appearances": 3.0,
            "fifa_rank": 670.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 7.0329,
            "source_file": "data/player_rankings.csv",
            "player_name": "Antonee Robinson",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Sardor Sobirkhuzhaev",
                  "ranking": 871
                },
                {
                  "player_name": "Sung-joon Kim",
                  "ranking": 872
                },
                {
                  "player_name": "Derlan",
                  "ranking": 873
                },
                {
                  "player_name": "Vladimír Coufal",
                  "ranking": 874
                },
                {
                  "player_name": "Manuel Neuer",
                  "ranking": 875
                }
              ],
              "lower": [
                {
                  "player_name": "Amadou Onana",
                  "ranking": 877
                },
                {
                  "player_name": "Kim Hyeong-jin",
                  "ranking": 878
                },
                {
                  "player_name": "Sancet",
                  "ranking": 879
                },
                {
                  "player_name": "Jaloliddin Jumaboyev",
                  "ranking": 880
                },
                {
                  "player_name": "Vivian",
                  "ranking": 881
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.457,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.457,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0506,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 171.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.53,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.1267
            },
            "rationale": "XGBoost regressor (D_service) evaluated 3 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.13, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.6944,
                "minutes": 84,
                "total_pass": 50,
                "accurate_pass": 40,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 16,
                "total_opp_half_passes": 30,
                "accurate_opp_half_passes": 24,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 72,
                "possession_lost": 16.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.06,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 80,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 82.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "touches_p90": 77.606,
                  "accuratePass": 39.9436,
                  "possessionLostCtrl": 15.9329,
                  "totalClearance": 1.7279,
                  "totalClearance_p90": 1.9451
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.7775402665138245,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.054
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0283
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0155
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0138
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0135
                        }
                      ],
                      "others": -0.0648,
                      "total": 0.7775
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.7656611204147339,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0784
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0791
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0752
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0657
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0606
                        }
                      ],
                      "others": 0.0514,
                      "total": 1.7657
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.6901181936264038,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.2165
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.1131
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0967
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.1036
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.1117
                        }
                      ],
                      "others": 0.181,
                      "total": 1.6901
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.2555227279663086,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.5416
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.2931
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.1899
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.171
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.1423
                        }
                      ],
                      "others": -0.1518,
                      "total": 2.2555
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9982686042785645,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.0954
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0651
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0521
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0403
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0291
                        }
                      ],
                      "others": -0.1006,
                      "total": 0.9983
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6091741919517517,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": 0.0919
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0751
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0445
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0326
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0251
                        }
                      ],
                      "others": -0.1162,
                      "total": 0.6092
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6944122314453125,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0335
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0266
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0263
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0248
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0237
                        }
                      ],
                      "others": 0.0112,
                      "total": 6.6944
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0506, quality 0.669)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 24000000,
                "quality_factor": 0.6685,
                "boost_factor": 1.0506
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0515)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 95.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.05
              },
              "params": {
                "blend_weight": 0.0515,
                "history_matches": 3,
                "prior_reliability": 0.1267,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 1.7756,
                  "after": 1.8197
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.8169,
                  "after": 0.8019
                },
                {
                  "stat": "totalCross",
                  "before": 3.4984,
                  "after": 3.508
                },
                {
                  "stat": "totalShots",
                  "before": 0.64,
                  "after": 0.6343
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 95.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 95.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.4,
                "defensive_success_rate": 0.67,
                "opponent_faced": "Benjamin Šeško",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Benjamin Šeško",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 95.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.4,
                "defensive_success_rate": 0.67,
                "opponent_faced": "Benjamin Šeško",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 8, fifa_overall 80.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 95.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.4,
                "defensive_success_rate": 0.67,
                "opponent_faced": "Benjamin Šeško",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 876,
                "fifa_rank": 670.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 95.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.4,
                "defensive_success_rate": 0.67,
                "opponent_faced": "Benjamin Šeško",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0202,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0202,
                "scorer_weight": 0.2037,
                "squad_weight_total": 10.0956,
                "weight_share": 0.0202,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.0329,
                "minutes": 88,
                "total_pass": 52,
                "accurate_pass": 42,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 25,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 16.8089,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.063,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 84,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 95.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.0,
                "interceptions_in_zone": 1.1,
                "clearances_in_zone": 0.9,
                "aerial_duels_won": 0.4,
                "defensive_success_rate": 0.67,
                "opponent_faced": "Benjamin Šeško",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0202,
                "projected_assists": 0,
                "assist_probability": 0.0171,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0171,
                "provider_weight": 0.1808,
                "squad_weight_total": 10.5792,
                "weight_share": 0.0171,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Joachim Andersen": {
          "player_id": 362682,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 5,
          "height": 190,
          "market_value": 21000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 2,
            "total_shots": 0,
            "rating": 7.1567,
            "minutes": 94,
            "total_pass": 104,
            "accurate_pass": 93,
            "duels_won": 6,
            "total_long_balls": 11,
            "accurate_long_balls": 6,
            "total_own_half_passes": 63,
            "accurate_own_half_passes": 60,
            "total_opp_half_passes": 42,
            "accurate_opp_half_passes": 32,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 117,
            "possession_lost": 12.5068,
            "dispossessed": 0.0,
            "duels_lost": 4,
            "aerial_lost": 2,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 5,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0521,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 27,
            "total_progression": 82,
            "progressive_carries": 1,
            "key_pass": 2,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 1.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 50.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "opponent_faced": "Matheus Cunha",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0589,
            "projected_assists": 0,
            "assist_probability": 0.0598,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assists": 0,
                "expected_assists": 0.0649,
                "total_shots": 0,
                "total_pass": 112,
                "accurate_pass": 101,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0375,
                "total_shots": 0,
                "total_pass": 88,
                "accurate_pass": 77,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 5,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1034,
            "combined_rank_score": 462.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 68.0,
            "sofascore_rating": 7.6,
            "sofascore_appearances": 6.0,
            "fifa_rank": 856.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "projected_match_rating": 7.1567,
            "source_file": "data/player_rankings.csv",
            "player_name": "Joachim Andersen",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jonas Urbig",
                  "ranking": 1029
                },
                {
                  "player_name": "James Donachie",
                  "ranking": 1030
                },
                {
                  "player_name": "Felipe Campos",
                  "ranking": 1031
                },
                {
                  "player_name": "Carlos Romero",
                  "ranking": 1032
                },
                {
                  "player_name": "Shota Gvazava",
                  "ranking": 1033
                }
              ],
              "lower": [
                {
                  "player_name": "Alisson",
                  "ranking": 1035
                },
                {
                  "player_name": "Anthony Elanga",
                  "ranking": 1036
                },
                {
                  "player_name": "Sander Berge",
                  "ranking": 1037
                },
                {
                  "player_name": "Rustam Nartazhiev",
                  "ranking": 1038
                },
                {
                  "player_name": "Christian Bravo",
                  "ranking": 1039
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.385,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.385,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0422,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 1.0,
              "minutes": 90.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0667
            },
            "rationale": "XGBoost regressor (D_service) evaluated 2 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.07, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 6.8667,
                "minutes": 90,
                "total_pass": 100,
                "accurate_pass": 89,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 60,
                "accurate_own_half_passes": 58,
                "total_opp_half_passes": 40,
                "accurate_opp_half_passes": 31,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 112,
                "possession_lost": 12.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.05,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 79,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "touches_p90": 113.5135,
                  "accuratePass": 89.973,
                  "possessionLostCtrl": 12.0811,
                  "totalClearance": 5.3784,
                  "totalClearance_p90": 5.3784
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9719973206520081,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0312
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0303
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0277
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0172
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0158
                        }
                      ],
                      "others": 0.005,
                      "total": 0.972
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2575491666793823,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.094
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0632
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.048
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.034
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0315
                        }
                      ],
                      "others": -0.1111,
                      "total": 1.2575
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8654219508171082,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1022
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0598
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0557
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0475
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0451
                        }
                      ],
                      "others": 0.0136,
                      "total": 0.8654
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.4875359535217285,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.2683
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2698
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.2037
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.1842
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.193
                        }
                      ],
                      "others": 0.3727,
                      "total": 4.4875
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.5864207744598389,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.0893
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.075
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0659
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0668
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0468
                        }
                      ],
                      "others": 0.0941,
                      "total": 1.5864
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.37527793645858765,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "touches_p90",
                          "contribution": -0.0633
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0396
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0373
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0254
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0212
                        }
                      ],
                      "others": -0.0987,
                      "total": 0.3753
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.866711139678955,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0615
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.038
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0342
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0296
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0234
                        }
                      ],
                      "others": 0.0173,
                      "total": 6.8667
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0422, quality 0.641)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0422
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0310)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 1.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 50.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.031,
                "history_matches": 2,
                "prior_reliability": 0.0667,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0929
                },
                {
                  "stat": "wonTackle",
                  "before": 0.902,
                  "after": 0.8741
                },
                {
                  "stat": "totalShots",
                  "before": 0.3911,
                  "after": 0.379
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 1.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 50.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 1.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 50.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Matheus Cunha",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Matheus Cunha",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 1.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 50.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Matheus Cunha",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 11, fifa_overall 79.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 1.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 50.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Matheus Cunha",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1034,
                "fifa_rank": 856.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 1.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 50.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Matheus Cunha",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0589,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0589,
                "scorer_weight": 0.5946,
                "squad_weight_total": 10.0956,
                "weight_share": 0.0589,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1567,
                "minutes": 94,
                "total_pass": 104,
                "accurate_pass": 93,
                "duels_won": 6,
                "total_long_balls": 11,
                "accurate_long_balls": 6,
                "total_own_half_passes": 63,
                "accurate_own_half_passes": 60,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 117,
                "possession_lost": 12.5068,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0521,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 27,
                "total_progression": 82,
                "progressive_carries": 1,
                "key_pass": 2,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 1.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 50.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Matheus Cunha",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0589,
                "projected_assists": 0,
                "assist_probability": 0.0598,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0598,
                "provider_weight": 0.6328,
                "squad_weight_total": 10.5792,
                "weight_share": 0.0598,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Hugo Larsson": {
          "player_id": 1142211,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 15,
          "height": 187,
          "market_value": 30000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0859,
            "assists": 0,
            "expected_goals": 0.0955,
            "shots_on_target": 0,
            "total_shots": 2,
            "rating": 7.3257,
            "minutes": 12,
            "total_pass": 18,
            "accurate_pass": 15,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 13,
            "accurate_opp_half_passes": 10,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 22,
            "possession_lost": 3.1958,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 10,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.4,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Carlos Baleba",
            "opponent_faced": "Carlos Baleba",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0573,
            "projected_assists": 0,
            "assist_probability": 0.133,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 11,
                "rating": 7.3,
                "assists": 0,
                "expected_goals": 0.1278,
                "expected_assists": 0.2213,
                "total_shots": 1,
                "total_pass": 17,
                "accurate_pass": 14,
                "tackles": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3138,
            "combined_rank_score": 1104.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1511.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 7.3257,
            "source_file": "data/player_rankings.csv",
            "player_name": "Hugo Larsson",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Robert Navarro",
                  "ranking": 3133
                },
                {
                  "player_name": "Luka Sučić",
                  "ranking": 3134
                },
                {
                  "player_name": "Che Adams",
                  "ranking": 3135
                },
                {
                  "player_name": "Carlos Vicente",
                  "ranking": 3136
                },
                {
                  "player_name": "Lautaro Di Lollo",
                  "ranking": 3137
                }
              ],
              "lower": [
                {
                  "player_name": "Kasper Dolberg",
                  "ranking": 3139
                },
                {
                  "player_name": "Matt Grimes",
                  "ranking": 3140
                },
                {
                  "player_name": "Sem Steijn",
                  "ranking": 3141
                },
                {
                  "player_name": "David Brooks",
                  "ranking": 3142
                },
                {
                  "player_name": "André Silva",
                  "ranking": 3143
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0653,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 1 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0806,
                "assists": 0,
                "expected_goals": 0.0764,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.8768,
                "minutes": 11,
                "total_pass": 17,
                "accurate_pass": 14,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 3.0,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 9,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 1.0,
                    "rating": 7.3
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.0,
                  "ballRecovery_p90": 0.0,
                  "progressiveBallCarriesCount": 0.0,
                  "expectedAssists": 0.2213,
                  "ballRecovery": 0.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.98113614320755,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0989
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0718
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0557
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0475
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0395
                        }
                      ],
                      "others": -0.0788,
                      "total": 0.9811
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08064226806163788,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0206
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0081
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0054
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0046
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0045
                        }
                      ],
                      "others": -0.0051,
                      "total": 0.0806
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08472792059183121,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0064
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0042
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0037
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0031
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0023
                        }
                      ],
                      "others": -0.002,
                      "total": 0.0847
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07641368359327316,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0153
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0113
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0091
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0076
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0051
                        }
                      ],
                      "others": -0.0021,
                      "total": 0.0764
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2771226763725281,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0648
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0211
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0136
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0118
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0111
                        }
                      ],
                      "others": -0.0023,
                      "total": 0.2771
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.0084291696548462,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.1064
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.1007
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0728
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0663
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0594
                        }
                      ],
                      "others": -0.3368,
                      "total": 1.0084
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8768439292907715,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0262
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0254
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.02
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0185
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0172
                        }
                      ],
                      "others": -0.0099,
                      "total": 6.8768
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0653, quality 0.718)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0859,
                "assists": 0,
                "expected_goals": 0.0814,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3257,
                "minutes": 12,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1958,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 30000000,
                "quality_factor": 0.7176,
                "boost_factor": 1.0653
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0859,
                "assists": 0,
                "expected_goals": 0.0814,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3257,
                "minutes": 12,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1958,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0859,
                "assists": 0,
                "expected_goals": 0.0814,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.3257,
                "minutes": 12,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1958,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.4,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Carlos Baleba",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.4,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.2
                },
                {
                  "stat": "totalShots",
                  "before": 1.0743,
                  "after": 1.5
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0859,
                "assists": 0,
                "expected_goals": 0.0955,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.3257,
                "minutes": 12,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1958,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.4,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0814,
                  "after": 0.0955
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 2, fifa_overall 77.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0859,
                "assists": 0,
                "expected_goals": 0.0955,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.3257,
                "minutes": 12,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1958,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.4,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3138,
                "fifa_rank": 1511.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0859,
                "assists": 0,
                "expected_goals": 0.0955,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.3257,
                "minutes": 12,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1958,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.4,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0573,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0573,
                "scorer_weight": 0.5788,
                "squad_weight_total": 10.0956,
                "weight_share": 0.0573,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0859,
                "assists": 0,
                "expected_goals": 0.0955,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.3257,
                "minutes": 12,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 22,
                "possession_lost": 3.1958,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 10,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.4,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0573,
                "projected_assists": 0,
                "assist_probability": 0.133,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.133,
                "provider_weight": 1.4073,
                "squad_weight_total": 10.5792,
                "weight_share": 0.133,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Oscar Bobb": {
          "player_id": 1065216,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 14,
          "height": 174,
          "market_value": 27000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.1505,
            "assists": 1,
            "expected_goals": 0.2163,
            "shots_on_target": 0,
            "total_shots": 2,
            "rating": 7.4059,
            "minutes": 75,
            "total_pass": 26,
            "accurate_pass": 21,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 16,
            "crosses_total": 3,
            "crosses_accurate": 0,
            "touches": 42,
            "possession_lost": 11.2914,
            "dispossessed": 0.0,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 3,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 15,
            "total_progression": 82,
            "progressive_carries": 4,
            "shots_off_target": 2,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 73.9,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 3,
            "dribbles_successful": 0.9,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.337,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Carlos Baleba",
            "opponent_faced": "Carlos Baleba",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0963,
            "projected_assists": 1,
            "assist_probability": 0.2354,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 79,
                "rating": 7.6,
                "assists": 0,
                "expected_goals": 0.3189,
                "expected_assists": 0.6486,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 18,
                "key_pass": 4,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 68,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0093,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 18,
                "key_pass": 1,
                "tackles": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 67,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.2638,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3088,
            "combined_rank_score": 1056.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 310.0,
            "sofascore_rating": 7.0333,
            "sofascore_appearances": 6.0,
            "fifa_rank": 1803.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "projected_match_rating": 7.4059,
            "source_file": "data/player_rankings.csv",
            "player_name": "Oscar Bobb",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Igor Jesus",
                  "ranking": 3083
                },
                {
                  "player_name": "Luis Rioja",
                  "ranking": 3084
                },
                {
                  "player_name": "Roberto Alvarado",
                  "ranking": 3085
                },
                {
                  "player_name": "Callum Wilson",
                  "ranking": 3086
                },
                {
                  "player_name": "Victor Lindelöf",
                  "ranking": 3087
                }
              ],
              "lower": [
                {
                  "player_name": "Emmanuel Agbadou",
                  "ranking": 3089
                },
                {
                  "player_name": "Luis Romo",
                  "ranking": 3090
                },
                {
                  "player_name": "Ryan Sessegnon",
                  "ranking": 3091
                },
                {
                  "player_name": "Albian Hajdari",
                  "ranking": 3092
                },
                {
                  "player_name": "Joe Willock",
                  "ranking": 3093
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.453,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.453,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0582,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 133.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.1
            },
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.10, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1422,
                "assists": 0,
                "expected_goals": 0.1741,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 6.9983,
                "minutes": 71,
                "total_pass": 25,
                "accurate_pass": 20,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 15,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 10.67,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 78,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 79.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 68.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.1662,
                  "ballRecovery_p90": 3.4006,
                  "progressiveBallCarriesCount": 4.2157,
                  "expectedAssists": 0.3293,
                  "ballRecovery": 2.7775
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.4190813302993774,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0949
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0495
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0514
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0535
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0477
                        }
                      ],
                      "others": 0.153,
                      "total": 1.4191
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.142171710729599,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0113
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0112
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0072
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0051
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0049
                        }
                      ],
                      "others": 0.0096,
                      "total": 0.1422
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.1281033605337143,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.023
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0085
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0076
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0062
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0029
                        }
                      ],
                      "others": 0.0025,
                      "total": 0.1281
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1741493195295334,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0129
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0098
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0069
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0072
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0058
                        }
                      ],
                      "others": 0.0424,
                      "total": 0.1741
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.369865357875824,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0438
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.022
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0197
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0172
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0114
                        }
                      ],
                      "others": 0.0504,
                      "total": 0.3699
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.8069431781768799,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.2778
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.2141
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1031
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.084
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.081
                        }
                      ],
                      "others": -0.0115,
                      "total": 1.8069
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.998286247253418,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0259
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0245
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.022
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0165
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0152
                        }
                      ],
                      "others": 0.0624,
                      "total": 6.9983
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0582, quality 0.694)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 0,
                "expected_goals": 0.1843,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 27000000,
                "quality_factor": 0.6941,
                "boost_factor": 1.0582
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0406)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 0,
                "expected_goals": 0.1843,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.9,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -0.68
              },
              "params": {
                "blend_weight": 0.0406,
                "history_matches": 3,
                "prior_reliability": 0.1,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0813
                },
                {
                  "stat": "totalShots",
                  "before": 1.9122,
                  "after": 1.8345
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.3914,
                  "after": 0.3755
                },
                {
                  "stat": "totalCross",
                  "before": 2.8255,
                  "after": 2.819
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1356,
                  "after": 0.1301
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 0,
                "expected_goals": 0.1843,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.9,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 0,
                "expected_goals": 0.1843,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.9,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.337,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Carlos Baleba",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.337,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 0,
                "expected_goals": 0.2163,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.9,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.337,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1843,
                  "after": 0.2163
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 4, fifa_overall 76.0)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 0,
                "expected_goals": 0.2163,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.9,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.337,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3088,
                "fifa_rank": 1803.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 0,
                "expected_goals": 0.2163,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.9,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.337,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0963,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0963,
                "scorer_weight": 0.9726,
                "squad_weight_total": 10.0956,
                "weight_share": 0.0963,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1505,
                "assists": 1,
                "expected_goals": 0.2163,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.4059,
                "minutes": 75,
                "total_pass": 26,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 16,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.2914,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 3,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 73.9,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.9,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.337,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Carlos Baleba",
                "opponent_faced": "Carlos Baleba",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0963,
                "projected_assists": 1,
                "assist_probability": 0.2354,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.2354,
                "provider_weight": 2.4909,
                "squad_weight_total": 10.5792,
                "weight_share": 0.2354,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Kevin": {
          "player_id": 1112879,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 176,
          "market_value": 26000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0675,
            "assists": 0,
            "expected_goals": 0.0619,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 7.15,
            "minutes": 15,
            "total_pass": 9,
            "accurate_pass": 8,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 6,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 0.0,
            "dispossessed": 0.0,
            "duels_lost": 4,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 2,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 31,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 14.4,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.6,
            "crosses_attempted": 2.7,
            "duel_win_rate": 0.367,
            "pressing_faced": "HIGH",
            "matchup_zone": "LWB vs RWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Youri Tielemans",
            "opponent_faced": "Youri Tielemans",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0393,
            "projected_assists": 0,
            "assist_probability": 0.1217,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 12,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0379,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 7
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 17,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0064,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 9,
                "tackles": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3248,
            "combined_rank_score": 1190.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 615.0,
            "sofascore_rating": 6.7731,
            "sofascore_appearances": 26.0,
            "fifa_rank": 1766.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "projected_match_rating": 7.15,
            "source_file": "data/player_rankings.csv",
            "player_name": "Kevin",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Håkon Evjen",
                  "ranking": 3243
                },
                {
                  "player_name": "Jayden Bogle",
                  "ranking": 3244
                },
                {
                  "player_name": "Jérémie Boga",
                  "ranking": 3245
                },
                {
                  "player_name": "Jean Butez",
                  "ranking": 3246
                },
                {
                  "player_name": "Lorenzo Pellegrini",
                  "ranking": 3247
                }
              ],
              "lower": [
                {
                  "player_name": "Dodô",
                  "ranking": 3249
                },
                {
                  "player_name": "Pervis Estupiñán",
                  "ranking": 3250
                },
                {
                  "player_name": "Teun Koopmeiners",
                  "ranking": 3251
                },
                {
                  "player_name": "Yann Aurel Bisseck",
                  "ranking": 3252
                },
                {
                  "player_name": "Christian Kofane",
                  "ranking": 3253
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.378,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.378,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0558,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "minutes": 26.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.02
            },
            "rationale": "XGBoost regressor (M_service) evaluated 2 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.02, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0639,
                "assists": 0,
                "expected_goals": 0.0499,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7725,
                "minutes": 14,
                "total_pass": 8,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.0,
                  "ballRecovery_p90": 2.4324,
                  "progressiveBallCarriesCount": 1.0,
                  "expectedAssists": 0.0234,
                  "ballRecovery": 0.4595
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8397722244262695,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0796
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0714
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0645
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.045
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0268
                        }
                      ],
                      "others": -0.0012,
                      "total": 0.8398
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06391356885433197,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0205
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0053
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.005
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0053
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0055
                        }
                      ],
                      "others": -0.019,
                      "total": 0.0639
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09596111625432968,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0072
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0053
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0049
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0045
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0042
                        }
                      ],
                      "others": 0.0075,
                      "total": 0.096
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.04991471767425537,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0194
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0153
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0094
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0074
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0053
                        }
                      ],
                      "others": -0.0126,
                      "total": 0.0499
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2193358838558197,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0702
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0119
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0111
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.009
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0077
                        }
                      ],
                      "others": -0.0032,
                      "total": 0.2193
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8426949977874756,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.129
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1077
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0898
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0725
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0398
                        }
                      ],
                      "others": -0.3169,
                      "total": 0.8427
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.772467136383057,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.029
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0194
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0179
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0173
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0165
                        }
                      ],
                      "others": -0.0268,
                      "total": 6.7725
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0558, quality 0.686)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0527,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 26000000,
                "quality_factor": 0.6858,
                "boost_factor": 1.0558
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0093)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0527,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 14.4,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0093,
                "history_matches": 2,
                "prior_reliability": 0.02,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 1.5836,
                  "after": 1.6618
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0619
                },
                {
                  "stat": "totalShots",
                  "before": 0.8898,
                  "after": 0.8815
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0527,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 14.4,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0527,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 14.4,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.367,
                "pressing_faced": "HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Youri Tielemans",
                "opponent_faced": "Youri Tielemans",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Youri Tielemans",
                  "matchup_zone": "LWB vs RWB",
                  "duel_win_rate": 0.367,
                  "pressing_faced": "HIGH",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 0.8876,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0619,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 14.4,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.367,
                "pressing_faced": "HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Youri Tielemans",
                "opponent_faced": "Youri Tielemans",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0527,
                  "after": 0.0619
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 7, fifa_overall 76.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0619,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 14.4,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.367,
                "pressing_faced": "HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Youri Tielemans",
                "opponent_faced": "Youri Tielemans",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3248,
                "fifa_rank": 1766.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0619,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 14.4,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.367,
                "pressing_faced": "HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Youri Tielemans",
                "opponent_faced": "Youri Tielemans",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0393,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.0393,
                "scorer_weight": 0.3968,
                "squad_weight_total": 10.0956,
                "weight_share": 0.0393,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0675,
                "assists": 0,
                "expected_goals": 0.0619,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.15,
                "minutes": 15,
                "total_pass": 9,
                "accurate_pass": 8,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 0.0,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 31,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 14.4,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.367,
                "pressing_faced": "HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Youri Tielemans",
                "opponent_faced": "Youri Tielemans",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0393,
                "projected_assists": 0,
                "assist_probability": 0.1217,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1217,
                "provider_weight": 1.2875,
                "squad_weight_total": 10.5792,
                "weight_share": 0.1217,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Sander Berge": {
          "player_id": 793167,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 16,
          "height": 195,
          "market_value": 26000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0901,
            "assists": 0,
            "expected_goals": 0.0471,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 7.3407,
            "minutes": 65,
            "total_pass": 53,
            "accurate_pass": 50,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 29,
            "accurate_own_half_passes": 27,
            "total_opp_half_passes": 25,
            "accurate_opp_half_passes": 23,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 57,
            "possession_lost": 4.9304,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 22,
            "total_progression": 55,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 85.6,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "crosses_attempted": 2.7,
            "duel_win_rate": 0.38,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "RWB vs LWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Kobbie Mainoo",
            "opponent_faced": "Kobbie Mainoo",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.035,
            "projected_assists": 0,
            "assist_probability": 0.1392,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 29,
                "rating": 6.9,
                "assists": 0,
                "expected_assists": 0.1012,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 34,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 83,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.1964,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 50,
                "key_pass": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 73,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0294,
                "expected_assists": 0.0271,
                "total_shots": 1,
                "total_pass": 61,
                "accurate_pass": 58,
                "key_pass": 2,
                "tackles": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1037,
            "combined_rank_score": 465.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 69.0,
            "sofascore_rating": 7.5875,
            "sofascore_appearances": 8.0,
            "fifa_rank": 861.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "projected_match_rating": 7.3407,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sander Berge",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Carlos Romero",
                  "ranking": 1032
                },
                {
                  "player_name": "Shota Gvazava",
                  "ranking": 1033
                },
                {
                  "player_name": "Joachim Andersen",
                  "ranking": 1034
                },
                {
                  "player_name": "Alisson",
                  "ranking": 1035
                },
                {
                  "player_name": "Anthony Elanga",
                  "ranking": 1036
                }
              ],
              "lower": [
                {
                  "player_name": "Rustam Nartazhiev",
                  "ranking": 1038
                },
                {
                  "player_name": "Christian Bravo",
                  "ranking": 1039
                },
                {
                  "player_name": "Julián Quiñones",
                  "ranking": 1040
                },
                {
                  "player_name": "Alex Iwobi",
                  "ranking": 1041
                },
                {
                  "player_name": "Lee Ji-Hoon",
                  "ranking": 1042
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.454,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.454,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0558,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 154.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.58,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.1133
            },
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.11, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0854,
                "assists": 0,
                "expected_goals": 0.0379,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9531,
                "minutes": 62,
                "total_pass": 50,
                "accurate_pass": 47,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 26,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 4.67,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 21,
                "total_progression": 52,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 29.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 83.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 73.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.2809,
                  "ballRecovery_p90": 3.8219,
                  "progressiveBallCarriesCount": 0.0,
                  "expectedAssists": 0.1118,
                  "ballRecovery": 2.0
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.1804149150848389,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0847
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0646
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0593
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0449
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.045
                        }
                      ],
                      "others": 0.042,
                      "total": 1.1804
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08536413311958313,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0148
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.009
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0067
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0063
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0055
                        }
                      ],
                      "others": -0.0068,
                      "total": 0.0854
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.075481116771698,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0084
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0042
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0028
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0024
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0022
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.0755
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.03794727474451065,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0201
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0133
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0095
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0076
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.006
                        }
                      ],
                      "others": -0.0143,
                      "total": 0.0379
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.23053976893424988,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0376
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0243
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0143
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0091
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.009
                        }
                      ],
                      "others": -0.0258,
                      "total": 0.2305
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6576363444328308,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1423
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0898
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0887
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0834
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0552
                        }
                      ],
                      "others": -0.2856,
                      "total": 0.6576
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.953062057495117,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0257
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0239
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0235
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0225
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0216
                        }
                      ],
                      "others": 0.0555,
                      "total": 6.9531
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0558, quality 0.686)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0401,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 26000000,
                "quality_factor": 0.6858,
                "boost_factor": 1.0558
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0460)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0401,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 85.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.17
              },
              "params": {
                "blend_weight": 0.046,
                "history_matches": 3,
                "prior_reliability": 0.1133,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2434,
                  "after": 0.2322
                },
                {
                  "stat": "totalShots",
                  "before": 0.6943,
                  "after": 0.689
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0401,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 85.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0401,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 85.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.38,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kobbie Mainoo",
                "opponent_faced": "Kobbie Mainoo",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Kobbie Mainoo",
                  "matchup_zone": "RWB vs LWB",
                  "duel_win_rate": 0.38,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.4
                },
                {
                  "stat": "totalShots",
                  "before": 0.689,
                  "after": 0.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0471,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 85.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.38,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kobbie Mainoo",
                "opponent_faced": "Kobbie Mainoo",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0401,
                  "after": 0.0471
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 6, fifa_overall 79.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0471,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 85.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.38,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kobbie Mainoo",
                "opponent_faced": "Kobbie Mainoo",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1037,
                "fifa_rank": 861.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0471,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 85.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.38,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kobbie Mainoo",
                "opponent_faced": "Kobbie Mainoo",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.035,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.035,
                "scorer_weight": 0.3529,
                "squad_weight_total": 10.0956,
                "weight_share": 0.035,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0901,
                "assists": 0,
                "expected_goals": 0.0471,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.3407,
                "minutes": 65,
                "total_pass": 53,
                "accurate_pass": 50,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 4.9304,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 55,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 85.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "crosses_attempted": 2.7,
                "duel_win_rate": 0.38,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kobbie Mainoo",
                "opponent_faced": "Kobbie Mainoo",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.035,
                "projected_assists": 0,
                "assist_probability": 0.1392,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1392,
                "provider_weight": 1.473,
                "squad_weight_total": 10.5792,
                "weight_share": 0.1392,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Joshua King": {
          "player_id": 1546231,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 24,
          "height": 172,
          "market_value": 26000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1277,
            "assists": 0,
            "expected_goals": 0.2207,
            "shots_on_target": 1,
            "total_shots": 2,
            "rating": 7.4063,
            "minutes": 95,
            "total_pass": 38,
            "accurate_pass": 32,
            "duels_won": 4,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 14,
            "total_opp_half_passes": 24,
            "accurate_opp_half_passes": 18,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 56,
            "possession_lost": 15.1289,
            "dispossessed": 0.0,
            "duels_lost": 6,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 2,
            "clearances": 0,
            "total_contest": 5,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0271,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 20,
            "total_progression": 65,
            "progressive_carries": 4,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 40.0,
            "shotConversion": 0.2,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "opponent_faced": "Carlos Baleba, Amad Diallo",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "antagonist_source": "defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1207,
            "projected_assists": 0,
            "assist_probability": 0.1563,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.3132,
                "expected_assists": 0.2695,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 37,
                "accurate_pass": 33,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 90,
                "rating": 5.8,
                "assists": 0,
                "expected_goals": 0.4696,
                "expected_assists": 0.035,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 36,
                "accurate_pass": 30,
                "tackles": 2,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.1714,
                "expected_assists": 0.0363,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 36,
                "accurate_pass": 28,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3080,
            "combined_rank_score": 1046.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 809.0,
            "sofascore_rating": 6.6125,
            "sofascore_appearances": 32.0,
            "fifa_rank": 1284.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "projected_match_rating": 7.4063,
            "source_file": "data/player_rankings.csv",
            "player_name": "Joshua King",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Liam Delap",
                  "ranking": 3075
                },
                {
                  "player_name": "Leopold Querfeld",
                  "ranking": 3076
                },
                {
                  "player_name": "Daizen Maeda",
                  "ranking": 3077
                },
                {
                  "player_name": "Javi Galán",
                  "ranking": 3078
                },
                {
                  "player_name": "Matt O'Riley",
                  "ranking": 3079
                }
              ],
              "lower": [
                {
                  "player_name": "Aitor Ruibal",
                  "ranking": 3081
                },
                {
                  "player_name": "Artem Bondarenko",
                  "ranking": 3082
                },
                {
                  "player_name": "Igor Jesus",
                  "ranking": 3083
                },
                {
                  "player_name": "Luis Rioja",
                  "ranking": 3084
                },
                {
                  "player_name": "Roberto Alvarado",
                  "ranking": 3085
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.457,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.457,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0558,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 180.0,
              "goals_per90": 0.5,
              "assists_per90": 0.0,
              "shots_per90": 2.5,
              "shots_on_target_pct": 40.0,
              "prior_reliability": 0.1333
            },
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.13, gls/90: 0.5, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.121,
                "assists": 0,
                "expected_goals": 0.178,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0152,
                "minutes": 90,
                "total_pass": 36,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 17,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 14.33,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 19,
                "total_progression": 61,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.1
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "totalShots": 2.2809,
                  "ballRecovery_p90": 3.3975,
                  "progressiveBallCarriesCount": 3.8426,
                  "expectedAssists": 0.1265,
                  "ballRecovery": 3.3975
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.2906194925308228,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0966
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0516
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0487
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0387
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0387
                        }
                      ],
                      "others": 0.0472,
                      "total": 1.2906
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1209576353430748,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0093
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0071
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0057
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0056
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0048
                        }
                      ],
                      "others": 0.0052,
                      "total": 0.121
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0856088325381279,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0216
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0082
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0072
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0048
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0019
                        }
                      ],
                      "others": -0.0095,
                      "total": 0.0856
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.17803657054901123,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0187
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0118
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0077
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0066
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0064
                        }
                      ],
                      "others": 0.0313,
                      "total": 0.178
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6179502010345459,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0643
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0458
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0292
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0294
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0189
                        }
                      ],
                      "others": 0.098,
                      "total": 0.618
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.659001111984253,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2989
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0753
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0752
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0732
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0575
                        }
                      ],
                      "others": 0.1711,
                      "total": 1.659
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.015176773071289,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0298
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0266
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0234
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0216
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0208
                        }
                      ],
                      "others": 0.0612,
                      "total": 7.0152
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0558, quality 0.686)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.188,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 26000000,
                "quality_factor": 0.6858,
                "boost_factor": 1.0558
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.188,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0271,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.2,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 3,
                "prior_reliability": 0.1333,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0812
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "totalShots",
                  "before": 1.7515,
                  "after": 1.792
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "goals",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.6524,
                  "after": 0.6712
                },
                {
                  "stat": "totalCross",
                  "before": 1.4041,
                  "after": 1.4093
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.188,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0271,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.2,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.188,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0271,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.2,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Carlos Baleba, Amad Diallo",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Carlos Baleba, Amad Diallo",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.2207,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0271,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.2,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Carlos Baleba, Amad Diallo",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.188,
                  "after": 0.2207
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 5, fifa_overall 78.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.2207,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0271,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.2,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Carlos Baleba, Amad Diallo",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3080,
                "fifa_rank": 1284.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.2207,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0271,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.2,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Carlos Baleba, Amad Diallo",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1207,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.1207,
                "scorer_weight": 1.2188,
                "squad_weight_total": 10.0956,
                "weight_share": 0.1207,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1277,
                "assists": 0,
                "expected_goals": 0.2207,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.4063,
                "minutes": 95,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 18,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 56,
                "possession_lost": 15.1289,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 5,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0271,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 20,
                "total_progression": 65,
                "progressive_carries": 4,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 40.0,
                "shotConversion": 0.2,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Carlos Baleba, Amad Diallo",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1207,
                "projected_assists": 0,
                "assist_probability": 0.1563,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1563,
                "provider_weight": 1.654,
                "squad_weight_total": 10.5792,
                "weight_share": 0.1563,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Gonzalo García": {
          "player_id": 1402716,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 7,
          "height": 182,
          "market_value": 31000000,
          "stats": {
            "expected_goals": 0.214,
            "goal_rate": 0.2869,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 3,
            "expected_assists": 0.0514,
            "key_pass": 1,
            "rating": 7.2543,
            "minutes": 95,
            "total_pass": 23,
            "accurate_pass": 19,
            "duels_won": 7,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 14,
            "accurate_opp_half_passes": 11,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 42,
            "possession_lost": 11.3899,
            "dispossessed": 1.4197,
            "duels_lost": 9,
            "aerial_lost": 3,
            "total_contest": 3,
            "won_contest": 1,
            "ball_recovery": 2,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 7,
            "total_progression": 11,
            "progressive_carries": 1,
            "shots_off_target": 2,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 16.7,
            "shotConversion": 0.17,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Lisandro Martínez, Leny Yoro",
            "opponent_faced": "Lisandro Martínez, Leny Yoro",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.3332,
            "projected_assists": 0,
            "assist_probability": 0.0679,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.4426,
                "expected_assists": 0.2017,
                "total_shots": 5,
                "shots_off_target": 2,
                "total_pass": 20,
                "accurate_pass": 16,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 3,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assists": 0,
                "expected_goals": 0.2697,
                "expected_assists": 0.0129,
                "total_shots": 3,
                "total_pass": 19,
                "accurate_pass": 13,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.7335,
                "expected_assists": 0.0065,
                "total_shots": 3,
                "shots_on_target": 1,
                "total_pass": 27,
                "accurate_pass": 23,
                "tackles": 1,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1573,
            "combined_rank_score": 873.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 641.0,
            "sofascore_rating": 6.75,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1106.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "projected_match_rating": 7.2543,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gonzalo García",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Alan Minda",
                  "ranking": 1568
                },
                {
                  "player_name": "Éric Davis",
                  "ranking": 1569
                },
                {
                  "player_name": "Javier Boñar",
                  "ranking": 1570
                },
                {
                  "player_name": "Ken Sema",
                  "ranking": 1571
                },
                {
                  "player_name": "Julio Báez",
                  "ranking": 1572
                }
              ],
              "lower": [
                {
                  "player_name": "Yilmar Velázquez",
                  "ranking": 1574
                },
                {
                  "player_name": "Mauricio Vera",
                  "ranking": 1575
                },
                {
                  "player_name": "Jardel",
                  "ranking": 1576
                },
                {
                  "player_name": "Kim Dong-wook",
                  "ranking": 1577
                },
                {
                  "player_name": "Viktor Đukanović",
                  "ranking": 1578
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.457,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.457,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0675,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 180.0,
              "goals_per90": 0.5,
              "assists_per90": 0.0,
              "shots_per90": 3.0,
              "shots_on_target_pct": 16.7,
              "prior_reliability": 0.1333
            },
            "rationale": "XGBoost regressor (F_service) evaluated 3 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.13, gls/90: 0.5, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2649,
                "goal_rate": 0.2573,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0481,
                "key_pass": 1,
                "rating": 6.7958,
                "minutes": 90,
                "total_pass": 22,
                "accurate_pass": 17,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 13,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 10.67,
                "dispossessed": 1.33,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 10,
                "progressive_carries": 1,
                "shots_off_target": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:14.946589+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.1
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "minutesPlayed": 90.0,
                  "totalShots": 3.7775,
                  "onTargetScoringAttempt": 0.2809,
                  "touches": 39.1497,
                  "dribbleValueNormalized": 0.2848
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2649283707141876,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0671
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.044
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.029
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0236
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0221
                        }
                      ],
                      "others": -0.0914,
                      "total": 0.2649
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2573353052139282,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0692
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0555
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0508
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0193
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0166
                        }
                      ],
                      "others": -0.021,
                      "total": 0.2573
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6384623050689697,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0715
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0432
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0187
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0187
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0172
                        }
                      ],
                      "others": -0.0399,
                      "total": 0.6385
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.5702991485595703,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0896
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.062
                      },
                      {
                        "name": "shotOffTarget",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0517
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0408
                      }
                    ],
                    "decomposition": {
                      "base": 1.531,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.4709
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1868
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.1756
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0751
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0723
                        }
                      ],
                      "others": 0.0586,
                      "total": 2.5703
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.0481354221701622,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0098
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0096
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0114
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0063
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0054
                        }
                      ],
                      "others": -0.0093,
                      "total": 0.0481
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6934314966201782,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0988
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0729
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0656
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.045
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0262
                        }
                      ],
                      "others": -0.021,
                      "total": 0.6934
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.795785427093506,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0737
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0474
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0471
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0392
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0324
                        }
                      ],
                      "others": 0.0156,
                      "total": 6.7958
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0675, quality 0.725)",
              "stats": {
                "expected_goals": 0.2828,
                "goal_rate": 0.2747,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 31000000,
                "quality_factor": 0.7249,
                "boost_factor": 1.0675
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "expected_goals": 0.2828,
                "goal_rate": 0.2869,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 3,
                "prior_reliability": 0.1333,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "totalShots",
                  "before": 2.7437,
                  "after": 2.7576
                },
                {
                  "stat": "goals",
                  "before": 0.2747,
                  "after": 0.2869
                },
                {
                  "stat": "fouls",
                  "before": 1.7827,
                  "after": 1.7945
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.6815,
                  "after": 0.6717
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2828,
                "goal_rate": 0.2869,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.1823,
                "goal_rate": 0.2869,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Lisandro Martínez, Leny Yoro",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v2",
                  "xg_override": 0.1823
                }
              },
              "changes": [
                {
                  "stat": "expectedGoals",
                  "before": 0.2828,
                  "after": 0.1823
                },
                {
                  "stat": "totalShots",
                  "before": 2.7576,
                  "after": 2.7338
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "expected_goals": 0.214,
                "goal_rate": 0.2869,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1823,
                  "after": 0.214
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 1, fifa_overall 78.0)",
              "stats": {
                "expected_goals": 0.214,
                "goal_rate": 0.2869,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1573,
                "fifa_rank": 1106.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.214,
                "goal_rate": 0.2869,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3332,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 1,
                "goal_probability": 0.3332,
                "scorer_weight": 3.3635,
                "squad_weight_total": 10.0956,
                "weight_share": 0.3332,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.214,
                "goal_rate": 0.2869,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0514,
                "key_pass": 1,
                "rating": 7.2543,
                "minutes": 95,
                "total_pass": 23,
                "accurate_pass": 19,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 42,
                "possession_lost": 11.3899,
                "dispossessed": 1.4197,
                "duels_lost": 9,
                "aerial_lost": 3,
                "total_contest": 3,
                "won_contest": 1,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 7,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 2,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.17,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.3332,
                "projected_assists": 0,
                "assist_probability": 0.0679,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0679,
                "provider_weight": 0.7181,
                "squad_weight_total": 10.5792,
                "weight_share": 0.0679,
                "position_multiplier": 0.85
              }
            }
          ]
        },
        "Rodrigo Muniz": {
          "player_id": 1015256,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 9,
          "height": 184,
          "market_value": 22000000,
          "stats": {
            "expected_goals": 0.1251,
            "goal_rate": 0.1205,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "expected_assists": 0.0238,
            "key_pass": 1,
            "rating": 6.2547,
            "minutes": 10,
            "total_pass": 3,
            "accurate_pass": 2,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 2.6127,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0627,
            "offsides": 0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 100.0,
            "shotConversion": 0.0,
            "minutesPct": 5.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.18,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Lisandro Martínez, Leny Yoro",
            "opponent_faced": "Lisandro Martínez, Leny Yoro",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.2179,
            "projected_assists": 0,
            "assist_probability": 0.057,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 12,
                "rating": 6.1,
                "assists": 0,
                "expected_goals": 0.382,
                "expected_assists": 0.0001,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 2,
                "accurate_pass": 1,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 8,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0196,
                "expected_assists": 0.0016,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 4,
                "accurate_pass": 2,
                "key_pass": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3299,
            "combined_rank_score": 1249.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1800.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "projected_match_rating": 6.2547,
            "source_file": "data/player_rankings.csv",
            "player_name": "Rodrigo Muniz",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Michael Zetterer",
                  "ranking": 3294
                },
                {
                  "player_name": "Lukas Nmecha",
                  "ranking": 3295
                },
                {
                  "player_name": "Ruslan Malinovskyi",
                  "ranking": 3296
                },
                {
                  "player_name": "Ibrahim Mbaye",
                  "ranking": 3297
                },
                {
                  "player_name": "Unai Núñez",
                  "ranking": 3298
                }
              ],
              "lower": [
                {
                  "player_name": "Raíllo",
                  "ranking": 3300
                },
                {
                  "player_name": "Gelson Martins",
                  "ranking": 3301
                },
                {
                  "player_name": "Abel Bretones",
                  "ranking": 3302
                },
                {
                  "player_name": "Chiquinho",
                  "ranking": 3303
                },
                {
                  "player_name": "Kaiki",
                  "ranking": 3304
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.376,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.376,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0451,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "minutes": 9.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 10.0,
              "shots_on_target_pct": 100.0,
              "prior_reliability": 0.0067
            },
            "rationale": "XGBoost regressor (F_service) evaluated 2 historical appearances across 7 target models; FBref 2026-2027 prior blended (Premier League, Fulham, rel: 0.01, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1582,
                "goal_rate": 0.1157,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0227,
                "key_pass": 1,
                "rating": 5.985,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.5,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.06,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:14.946589+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 8.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "minutesPlayed": 10.1622,
                  "totalShots": 1.5405,
                  "onTargetScoringAttempt": 1.0,
                  "touches": 7.5405,
                  "dribbleValueNormalized": 0.023
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.15822869539260864,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0631
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0215
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0179
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0176
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0155
                        }
                      ],
                      "others": -0.0487,
                      "total": 0.1582
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.11566060781478882,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0667
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0483
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0368
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0292
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0108
                        }
                      ],
                      "others": -0.038,
                      "total": 0.1157
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5551501512527466,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0568
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0222
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0198
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0175
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.014
                        }
                      ],
                      "others": -0.0664,
                      "total": 0.5552
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.2981421947479248,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0896
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.062
                      },
                      {
                        "name": "shotOffTarget",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0517
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0408
                      }
                    ],
                    "decomposition": {
                      "base": 1.531,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.2887
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2393
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.1093
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.1048
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0524
                        }
                      ],
                      "others": -0.2314,
                      "total": 1.2981
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02273614890873432,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0119
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0062
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0053
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0042
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0048,
                      "total": 0.0227
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7268038988113403,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1657
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0504
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0471
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0419
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0286
                        }
                      ],
                      "others": -0.0546,
                      "total": 0.7268
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 5.984950065612793,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.3302
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.1896
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.107
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.078
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.068
                        }
                      ],
                      "others": 0.0442,
                      "total": 5.985
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0451, quality 0.650)",
              "stats": {
                "expected_goals": 0.1654,
                "goal_rate": 0.1209,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 22000000,
                "quality_factor": 0.6503,
                "boost_factor": 1.0451
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0031)",
              "stats": {
                "expected_goals": 0.1654,
                "goal_rate": 0.1205,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 5.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0031,
                "history_matches": 2,
                "prior_reliability": 0.0067,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5802,
                  "after": 0.6095
                },
                {
                  "stat": "totalShots",
                  "before": 1.3567,
                  "after": 1.3836
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.1654,
                "goal_rate": 0.1205,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 5.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.1066,
                "goal_rate": 0.1205,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 5.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Lisandro Martínez, Leny Yoro",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v2",
                  "xg_override": 0.1066
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.386,
                  "after": 2.0
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1654,
                  "after": 0.1066
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "expected_goals": 0.1251,
                "goal_rate": 0.1205,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 5.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1066,
                  "after": 0.1251
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 9, fifa_overall 76.0)",
              "stats": {
                "expected_goals": 0.1251,
                "goal_rate": 0.1205,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 5.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3299,
                "fifa_rank": 1800.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 1 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.1251,
                "goal_rate": 0.1205,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 5.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2179,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 1,
                "goals_allocated": 0,
                "goal_probability": 0.2179,
                "scorer_weight": 2.2,
                "squad_weight_total": 10.0956,
                "weight_share": 0.2179,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.1251,
                "goal_rate": 0.1205,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0238,
                "key_pass": 1,
                "rating": 6.2547,
                "minutes": 10,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.6127,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0627,
                "offsides": 0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 100.0,
                "shotConversion": 0.0,
                "minutesPct": 5.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.18,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Lisandro Martínez, Leny Yoro",
                "opponent_faced": "Lisandro Martínez, Leny Yoro",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.2179,
                "projected_assists": 0,
                "assist_probability": 0.057,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.057,
                "provider_weight": 0.6031,
                "squad_weight_total": 10.5792,
                "weight_share": 0.057,
                "position_multiplier": 0.85
              }
            }
          ]
        }
      },
      "bench_players": {
        "Benjamin Lecomte": {
          "player_id": 123207,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 23,
          "height": 186,
          "market_value": 825000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.022,
            "rating": 6.8,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0146,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.1171,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 73.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3761,
            "combined_rank_score": 1750.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 3261.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Benjamin Lecomte",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Thiago Fernández",
                  "ranking": 3756
                },
                {
                  "player_name": "Jarne Steuckers",
                  "ranking": 3757
                },
                {
                  "player_name": "Rodrigo Gomes",
                  "ranking": 3758
                },
                {
                  "player_name": "Myrto Uzuni",
                  "ranking": 3759
                },
                {
                  "player_name": "Joel Ordoñez",
                  "ranking": 3760
                }
              ],
              "lower": [
                {
                  "player_name": "Matte Smets",
                  "ranking": 3762
                },
                {
                  "player_name": "Lars Unnerstall",
                  "ranking": 3763
                },
                {
                  "player_name": "Amir Murillo",
                  "ranking": 3764
                },
                {
                  "player_name": "Tatsuhiro Sakamoto",
                  "ranking": 3765
                },
                {
                  "player_name": "Steven Berghuis",
                  "ranking": 3766
                }
              ]
            }
          },
          "data_sources": [
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "G_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 4.392222187561249,
            "bench_appearance_prob": 0.10873737216187492,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "sub_appearances": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection from market-value prior (€825,000) scaled to 4.4 expected mins; FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position G (quality 0.44)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "market_value_eur": 825000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 0,
                "prior_reliability": 0.0,
                "competition": "Premier League",
                "squad": "Fulham"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 17, fifa_overall 73.0)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3761,
                "fifa_rank": 3261.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 73.0
              }
            }
          ]
        },
        "Ryan Sessegnon": {
          "player_id": 836698,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 30,
          "height": 178,
          "market_value": 21000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.9102,
            "minutes": 18,
            "total_pass": 3,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 5,
            "possession_lost": 1.6006,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0097,
            "expected_assists": 0.0313,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 7,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.0,
            "minutesPct": 22.8,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.618,
            "bench_expected_minutes": 18.02,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0791,
                "expected_assists": 0.3199,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 14,
                "key_pass": 1,
                "interceptions": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 22,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.021,
                "expected_assists": 0.1245,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 13,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 17,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.0325,
                "expected_assists": 0.0027,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 7,
                "accurate_pass": 4,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3091,
            "combined_rank_score": 1057.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1417.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.9102,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ryan Sessegnon",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Callum Wilson",
                  "ranking": 3086
                },
                {
                  "player_name": "Victor Lindelöf",
                  "ranking": 3087
                },
                {
                  "player_name": "Oscar Bobb",
                  "ranking": 3088
                },
                {
                  "player_name": "Emmanuel Agbadou",
                  "ranking": 3089
                },
                {
                  "player_name": "Luis Romo",
                  "ranking": 3090
                }
              ],
              "lower": [
                {
                  "player_name": "Albian Hajdari",
                  "ranking": 3092
                },
                {
                  "player_name": "Joe Willock",
                  "ranking": 3093
                },
                {
                  "player_name": "Adam Hložek",
                  "ranking": 3094
                },
                {
                  "player_name": "Jamie Gittens",
                  "ranking": 3095
                },
                {
                  "player_name": "Gonzalo Montiel",
                  "ranking": 3096
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.442,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.442,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.02,
            "bench_appearance_prob": 0.618,
            "market_value_adjustment": 1.0422,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 21.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0333
            },
            "rationale": "Bench projection scaled from XGBoost D_service (3 historical appearances) to 18.0 expected mins (appearance prob 0.62); FBref playing time empirical prior: 2.0 sub appearances, 21.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6302,
                "minutes": 17,
                "total_pass": 13,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 7.67,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.04,
                "expected_assists": 0.15,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 22.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "touches_p90": 150.1431,
                  "accuratePass": 10.861,
                  "possessionLostCtrl": 7.6696,
                  "totalClearance": 0.0,
                  "totalClearance_p90": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.7403874397277832,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2619
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0388
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0356
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0293
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0241
                        }
                      ],
                      "others": 0.0223,
                      "total": 0.7404
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2459543943405151,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0519
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0513
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0506
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0472
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0453
                        }
                      ],
                      "others": 0.0344,
                      "total": 1.246
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7247443795204163,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0809
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0576
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0521
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0386
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0362
                        }
                      ],
                      "others": 0.0502,
                      "total": 0.7247
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.11260986328125,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.7667
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1799
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1262
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.053
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0496
                        }
                      ],
                      "others": -0.1152,
                      "total": 1.1126
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8060014247894287,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2737
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.044
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0265
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0234
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0201
                        }
                      ],
                      "others": -0.0886,
                      "total": 0.806
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.2626276910305023,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2544
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0563
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0441
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0196
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0178
                        }
                      ],
                      "others": -0.0022,
                      "total": 0.2626
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6302103996276855,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0667
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0537
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0325
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0251
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0235
                        }
                      ],
                      "others": -0.0294,
                      "total": 6.6302
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0422, quality 0.641)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 17,
                "total_pass": 14,
                "accurate_pass": 11,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 7.9939,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0417,
                "expected_assists": 0.1563,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 34,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0422
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0135)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 17,
                "total_pass": 14,
                "accurate_pass": 11,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 7.9939,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0417,
                "expected_assists": 0.1563,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 34,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -2.2
              },
              "params": {
                "blend_weight": 0.0135,
                "history_matches": 3,
                "prior_reliability": 0.0333,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 2.7828,
                  "after": 2.9345
                },
                {
                  "stat": "totalShots",
                  "before": 0.2737,
                  "after": 0.3294
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0298
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.7717,
                  "after": 0.7883
                },
                {
                  "stat": "wonTackle",
                  "before": 0.7554,
                  "after": 0.7452
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.0 expected minutes (appearance prob 0.62)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0083,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02
              },
              "params": {
                "expected_minutes": 18.02,
                "appearance_probability": 0.618
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0083,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0097,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 77.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0097,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3091,
                "fifa_rank": 1417.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "David Affengruber": {
          "player_id": 988672,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 22,
          "height": 185,
          "market_value": 18100000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.7945,
            "minutes": 14,
            "total_pass": 12,
            "accurate_pass": 10,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 15,
            "possession_lost": 1.584,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.018,
            "expected_assists": 0.0033,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 9,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.33,
            "bench_expected_minutes": 14.26,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416304.0,
              "match_date": "2026-08-28",
              "home_team": "Real Racing Club",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.1202,
                "expected_assists": 0.0362,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 77,
                "accurate_pass": 70,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "FC Barcelona",
              "stats": {
                "minutes": 90,
                "rating": 5.1,
                "assists": 0,
                "expected_goals": 0.0761,
                "expected_assists": 0.0035,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 47,
                "accurate_pass": 37,
                "interceptions": 4,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16421050.0,
              "match_date": "2026-08-17",
              "home_team": "Deportivo de A Coruña",
              "away_team": "Elche",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Elche",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assists": 0,
                "expected_goals": 0.131,
                "expected_assists": 0.0108,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 88,
                "accurate_pass": 83,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 5,
                "duels_won": 5,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8.0",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268.0",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3203,
            "combined_rank_score": 1157.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 336.0,
            "sofascore_rating": 7.0,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1979.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 6.7945,
            "source_file": "data/player_rankings.csv",
            "player_name": "David Affengruber",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "David Zima",
                  "ranking": 3198
                },
                {
                  "player_name": "Juan Iglesias",
                  "ranking": 3199
                },
                {
                  "player_name": "Thierno Barry",
                  "ranking": 3200
                },
                {
                  "player_name": "Tiago Palacios",
                  "ranking": 3201
                },
                {
                  "player_name": "Frederik Rønnow",
                  "ranking": 3202
                }
              ],
              "lower": [
                {
                  "player_name": "Kike Salas",
                  "ranking": 3204
                },
                {
                  "player_name": "Franck Honorat",
                  "ranking": 3205
                },
                {
                  "player_name": "Djibril Sow",
                  "ranking": 3206
                },
                {
                  "player_name": "Pepelu",
                  "ranking": 3207
                },
                {
                  "player_name": "Dayann Methalie",
                  "ranking": 3208
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 14.26342464087466,
            "bench_appearance_prob": 0.3301556654943028,
            "market_value_adjustment": 1.0336,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (3 historical appearances) to 14.3 expected mins (appearance prob 0.33)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5737,
                "minutes": 90,
                "total_pass": 71,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 44,
                "accurate_own_half_passes": 41,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 89,
                "possession_lost": 9.67,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.11,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 57,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-28",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "FC Barcelona",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 5.1
                  },
                  {
                    "match_date": "2026-08-17",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "touches_p90": 88.4169,
                  "accuratePass": 62.7473,
                  "possessionLostCtrl": 9.6025,
                  "totalClearance": 3.62,
                  "totalClearance_p90": 3.62
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.8264799118041992,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1791
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.047
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0258
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0212
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0134
                        }
                      ],
                      "others": -0.0126,
                      "total": 0.8265
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.0913875102996826,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.088
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0573
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0453
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0427
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.031
                        }
                      ],
                      "others": 0.0004,
                      "total": 1.0914
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.5397114157676697,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1355
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.055
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0442
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0413
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.0206
                        }
                      ],
                      "others": -0.0312,
                      "total": 0.5397
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.1744600534439087,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.8543
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1035
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0871
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0785
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0566
                        }
                      ],
                      "others": -0.2557,
                      "total": 1.1745
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8618699908256531,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2874
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.038
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0362
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0299
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.022
                        }
                      ],
                      "others": -0.0427,
                      "total": 0.8619
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.20690834522247314,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1862
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0266
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0183
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": -0.0173
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0151
                        }
                      ],
                      "others": -0.0756,
                      "total": 0.2069
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.573654651641846,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.08
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0611
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0458
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0291
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0247
                        }
                      ],
                      "others": 0.0441,
                      "total": 6.5737
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0336, quality 0.612)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7945,
                "minutes": 93,
                "total_pass": 73,
                "accurate_pass": 65,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 45,
                "accurate_own_half_passes": 42,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 92,
                "possession_lost": 9.9948,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1137,
                "expected_assists": 0.0207,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 59,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 18100000,
                "quality_factor": 0.612,
                "boost_factor": 1.0336
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 14.3 expected minutes (appearance prob 0.33)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.7945,
                "minutes": 14,
                "total_pass": 12,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.584,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.018,
                "expected_assists": 0.0033,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.33,
                "bench_expected_minutes": 14.26
              },
              "params": {
                "expected_minutes": 14.26,
                "appearance_probability": 0.33
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.7945,
                "minutes": 14,
                "total_pass": 12,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.584,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.018,
                "expected_assists": 0.0033,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.33,
                "bench_expected_minutes": 14.26
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 14, fifa_overall 76.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.7945,
                "minutes": 14,
                "total_pass": 12,
                "accurate_pass": 10,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 1.584,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.018,
                "expected_assists": 0.0033,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 9,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.33,
                "bench_expected_minutes": 14.26,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3203,
                "fifa_rank": 1979.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            }
          ]
        },
        "Alex Iwobi": {
          "player_id": 352770,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 17,
          "height": 183,
          "market_value": 21000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0275,
            "assists": 0,
            "expected_goals": 0.0119,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 7.2197,
            "minutes": 23,
            "total_pass": 20,
            "accurate_pass": 18,
            "duels_won": 0,
            "total_long_balls": 2,
            "accurate_long_balls": 2,
            "total_own_half_passes": 8,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 12,
            "accurate_opp_half_passes": 10,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 23,
            "possession_lost": 2.9885,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 9,
            "total_progression": 26,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.323,
            "bench_expected_minutes": 22.78,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363264.0,
              "match_date": "2026-09-12 14:00:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Liverpool",
              "away_team": "Fulham",
              "home_score_current": 0.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Fulham",
              "opponent": "Liverpool",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 83,
                "rating": 7.3,
                "assists": 0,
                "expected_goals": 0.036,
                "expected_assists": 0.2573,
                "total_shots": 1,
                "total_pass": 70,
                "accurate_pass": 64,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assists": 0,
                "expected_goals": 0.0147,
                "expected_assists": 0.4028,
                "total_shots": 1,
                "total_pass": 60,
                "accurate_pass": 56,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0385,
                "total_shots": 0,
                "total_pass": 92,
                "accurate_pass": 83,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "duels_won": 1,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1041,
            "combined_rank_score": 471.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 277.0,
            "sofascore_rating": 7.069,
            "sofascore_appearances": 29.0,
            "fifa_rank": 665.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "substitute",
            "projected_match_rating": 7.2197,
            "source_file": "data/player_rankings.csv",
            "player_name": "Alex Iwobi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Anthony Elanga",
                  "ranking": 1036
                },
                {
                  "player_name": "Sander Berge",
                  "ranking": 1037
                },
                {
                  "player_name": "Rustam Nartazhiev",
                  "ranking": 1038
                },
                {
                  "player_name": "Christian Bravo",
                  "ranking": 1039
                },
                {
                  "player_name": "Julián Quiñones",
                  "ranking": 1040
                }
              ],
              "lower": [
                {
                  "player_name": "Lee Ji-Hoon",
                  "ranking": 1042
                },
                {
                  "player_name": "Narimonjon Akhmadjonov",
                  "ranking": 1043
                },
                {
                  "player_name": "Stevan Jovetić",
                  "ranking": 1044
                },
                {
                  "player_name": "Ricardo Rodríguez",
                  "ranking": 1045
                },
                {
                  "player_name": "Alan Cariús",
                  "ranking": 1046
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.457,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.457,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 22.77746860076133,
            "bench_appearance_prob": 0.323,
            "market_value_adjustment": 1.0422,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1333
            },
            "rationale": "Bench projection scaled from XGBoost M_service (3 historical appearances) to 22.8 expected mins (appearance prob 0.32); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1043,
                "assists": 0,
                "expected_goals": 0.0453,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9271,
                "minutes": 88,
                "total_pass": 74,
                "accurate_pass": 68,
                "duels_won": 2,
                "total_long_balls": 8,
                "accurate_long_balls": 6,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 39,
                "crosses_total": 3,
                "crosses_accurate": 1,
                "touches": 86,
                "possession_lost": 11.33,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 33,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 83.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.7191,
                  "ballRecovery_p90": 3.6105,
                  "progressiveBallCarriesCount": 1.0583,
                  "expectedAssists": 0.2439,
                  "ballRecovery": 3.5121
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.016467571258545,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1612
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0859
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0434
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.037
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0272
                        }
                      ],
                      "others": 0.0695,
                      "total": 1.0165
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.10431762784719467,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0122
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0066
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0068
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0071
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.006
                        }
                      ],
                      "others": -0.0029,
                      "total": 0.1043
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.110404834151268,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0173
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.012
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.008
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0073
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0045
                        }
                      ],
                      "others": -0.0107,
                      "total": 0.1104
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.04531778767704964,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0252
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0184
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0052
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0035
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0027
                        }
                      ],
                      "others": -0.0084,
                      "total": 0.0453
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2855219542980194,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0308
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0303
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0269
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0151
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0148
                        }
                      ],
                      "others": -0.0202,
                      "total": 0.2855
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.0604215860366821,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2181
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.2139
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.146
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.1398
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0743
                        }
                      ],
                      "others": 0.0739,
                      "total": 1.0604
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.927143096923828,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0714
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0334
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0313
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0299
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0209
                        }
                      ],
                      "others": 0.1138,
                      "total": 6.9271
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0422, quality 0.641)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1087,
                "assists": 0,
                "expected_goals": 0.0472,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.2197,
                "minutes": 91,
                "total_pass": 77,
                "accurate_pass": 71,
                "duels_won": 2,
                "total_long_balls": 8,
                "accurate_long_balls": 7,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 46,
                "accurate_opp_half_passes": 41,
                "crosses_total": 3,
                "crosses_accurate": 1,
                "touches": 90,
                "possession_lost": 11.8085,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 101,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0422
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1087,
                "assists": 0,
                "expected_goals": 0.0472,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.2197,
                "minutes": 91,
                "total_pass": 77,
                "accurate_pass": 71,
                "duels_won": 2,
                "total_long_balls": 8,
                "accurate_long_balls": 7,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 46,
                "accurate_opp_half_passes": 41,
                "crosses_total": 3,
                "crosses_accurate": 1,
                "touches": 90,
                "possession_lost": 11.8085,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 34,
                "total_progression": 101,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 3,
                "prior_reliability": 0.1333,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0812
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "totalShots",
                  "before": 1.1052,
                  "after": 1.0724
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0271
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2976,
                  "after": 0.2815
                },
                {
                  "stat": "totalCross",
                  "before": 2.7828,
                  "after": 2.7675
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1151,
                  "after": 0.1089
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.8 expected minutes (appearance prob 0.32)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0275,
                "assists": 0,
                "expected_goals": 0.0119,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.2197,
                "minutes": 23,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 0,
                "total_long_balls": 2,
                "accurate_long_balls": 2,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 2.9885,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 26,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.323,
                "bench_expected_minutes": 22.78
              },
              "params": {
                "expected_minutes": 22.78,
                "appearance_probability": 0.323
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0275,
                "assists": 0,
                "expected_goals": 0.0119,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.2197,
                "minutes": 23,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 0,
                "total_long_balls": 2,
                "accurate_long_balls": 2,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 2.9885,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 26,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.323,
                "bench_expected_minutes": 22.78
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 10, fifa_overall 80.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0275,
                "assists": 0,
                "expected_goals": 0.0119,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.2197,
                "minutes": 23,
                "total_pass": 20,
                "accurate_pass": 18,
                "duels_won": 0,
                "total_long_balls": 2,
                "accurate_long_balls": 2,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 2.9885,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 9,
                "total_progression": 26,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.323,
                "bench_expected_minutes": 22.78,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1041,
                "fifa_rank": 665.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 80.0
              }
            }
          ]
        },
        "Emile Smith Rowe": {
          "player_id": 867445,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 32,
          "height": 182,
          "market_value": 18300000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0078,
            "assists": 0,
            "expected_goals": 0.0089,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.9937,
            "minutes": 18,
            "total_pass": 2,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 3,
            "possession_lost": 0.424,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 2,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 1,
            "total_progression": 1,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 8.3,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.706,
            "bench_expected_minutes": 18.45,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 11,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0029,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 14,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0581,
                "expected_assists": 0.0242,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 16,
                "key_pass": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3121,
            "combined_rank_score": 1081.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 744.0,
            "sofascore_rating": 6.6676,
            "sofascore_appearances": 37.0,
            "fifa_rank": 1419.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 6.9937,
            "source_file": "data/player_rankings.csv",
            "player_name": "Emile Smith Rowe",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Youri Baas",
                  "ranking": 3116
                },
                {
                  "player_name": "Martín Satriano",
                  "ranking": 3117
                },
                {
                  "player_name": "Marcos Leonardo",
                  "ranking": 3118
                },
                {
                  "player_name": "Chidera Ejuke",
                  "ranking": 3119
                },
                {
                  "player_name": "Adrián Martínez",
                  "ranking": 3120
                }
              ],
              "lower": [
                {
                  "player_name": "Santiago Giménez",
                  "ranking": 3122
                },
                {
                  "player_name": "Mykola Shaparenko",
                  "ranking": 3123
                },
                {
                  "player_name": "Kostas Tsimikas",
                  "ranking": 3124
                },
                {
                  "player_name": "Kepa",
                  "ranking": 3125
                },
                {
                  "player_name": "Nahuel Molina",
                  "ranking": 3126
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.377,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.377,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.45,
            "bench_appearance_prob": 0.706,
            "market_value_adjustment": 1.0342,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 15.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost M_service (2 historical appearances) to 18.4 expected mins (appearance prob 0.71); FBref playing time empirical prior: 1.0 sub appearances, 15.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0367,
                "assists": 0,
                "expected_goals": 0.0359,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7624,
                "minutes": 12,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 2.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 2,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 14.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.4595,
                  "ballRecovery_p90": 2.9537,
                  "progressiveBallCarriesCount": 0.0,
                  "expectedAssists": 0.0127,
                  "ballRecovery": 0.4595
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5201387405395508,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2381
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0654
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0567
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0256
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0213
                        }
                      ],
                      "others": -0.0419,
                      "total": 0.5201
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.036694783717393875,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0197
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0126
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0057
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0041
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0038
                        }
                      ],
                      "others": -0.0103,
                      "total": 0.0367
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09466107189655304,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0057
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0048
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.004
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0038
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0034
                        }
                      ],
                      "others": 0.0064,
                      "total": 0.0947
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.035941723734140396,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0339
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0142
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0076
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0063
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0046
                        }
                      ],
                      "others": -0.0062,
                      "total": 0.0359
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.19389799237251282,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0657
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0177
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0121
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0097
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0072
                        }
                      ],
                      "others": -0.0261,
                      "total": 0.1939
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.49415266513824463,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2905
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1305
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.071
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0591
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0455
                        }
                      ],
                      "others": -0.2006,
                      "total": 0.4942
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.762368202209473,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0695
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0237
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0151
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0148
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0141
                        }
                      ],
                      "others": 0.0376,
                      "total": 6.7624
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0342, quality 0.614)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0379,
                "assists": 0,
                "expected_goals": 0.0372,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9937,
                "minutes": 13,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 2.0684,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 3,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 18300000,
                "quality_factor": 0.614,
                "boost_factor": 1.0342
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0062)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0379,
                "assists": 0,
                "expected_goals": 0.0372,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9937,
                "minutes": 13,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 2.0684,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 3,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0062,
                "history_matches": 2,
                "prior_reliability": 0.0133,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.5111,
                  "after": 0.545
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.4 expected minutes (appearance prob 0.71)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0076,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45
              },
              "params": {
                "expected_minutes": 18.45,
                "appearance_probability": 0.706
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0076,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0089,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 77.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0089,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3121,
                "fifa_rank": 1419.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "Jonah Kusi-Asare": {
          "player_id": 1503757,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 196,
          "market_value": 3300000,
          "stats": {
            "expected_goals": 0.0752,
            "goal_rate": 0.0422,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0231,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 6.9,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 2.2776,
            "dispossessed": 1.0,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0484,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 13,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.31,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 62.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 9309,
            "combined_rank_score": 7945.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 933.0,
            "sofascore_rating": 6.4667,
            "sofascore_appearances": 7.0,
            "fifa_rank": 14958.0,
            "fifa_overall": 62.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jonah Kusi-Asare",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Pietro Pellegri",
                  "ranking": 9304
                },
                {
                  "player_name": "Vakoun Issouf Bayo",
                  "ranking": 9305
                },
                {
                  "player_name": "Konan N'Dri",
                  "ranking": 9306
                },
                {
                  "player_name": "Tino Anjorin",
                  "ranking": 9307
                },
                {
                  "player_name": "Luca Moro",
                  "ranking": 9308
                }
              ],
              "lower": [
                {
                  "player_name": "Joel Drakes-Thomas",
                  "ranking": 9310
                },
                {
                  "player_name": "Matthias Braunöder",
                  "ranking": 9311
                },
                {
                  "player_name": "Bjarki Steinn Bjarkason",
                  "ranking": 9312
                },
                {
                  "player_name": "Þórir Jóhann Helgason",
                  "ranking": 9313
                },
                {
                  "player_name": "Alessandro Gabrielloni",
                  "ranking": 9314
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 25.306980405874903,
            "bench_appearance_prob": 0.5594082002670411,
            "market_value_adjustment": 0.4412,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€3,300,000) scaled to 25.3 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.44)",
              "stats": {
                "expected_goals": 0.228,
                "goal_rate": 0.15,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.082,
                "duels_won": 4,
                "aerial_won": 1,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 20,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 41,
                "possession_lost": 8.1,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_lost": 1,
                "total_contest": 5,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.172,
                "offsides": 1,
                "ball_carries": 19,
                "total_progression": 47,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 3300000,
                "quality_factor": 0.4412
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0641,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31
              },
              "params": {
                "expected_minutes": 25.31,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0641,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "expected_goals": 0.0752,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0641,
                  "after": 0.0752
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 62.0)",
              "stats": {
                "expected_goals": 0.0752,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 62.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 9309,
                "fifa_rank": 14958.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 62.0
              }
            }
          ]
        },
        "Aidan Evans": {
          "player_id": 2350446,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 43,
          "height": 160,
          "market_value": 0,
          "stats": {
            "expected_goals": 0.0745,
            "goal_rate": 0.0393,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0228,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 6.9,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 2.2763,
            "dispossessed": 1.0,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0481,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 13,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 4,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 81.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 584,
            "combined_rank_score": 441.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 574.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aidan Evans",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Igor Galdin",
                  "ranking": 579
                },
                {
                  "player_name": "Manel Usedo Domingo",
                  "ranking": 580
                },
                {
                  "player_name": "Owen Asemota",
                  "ranking": 581
                },
                {
                  "player_name": "Hugo Pérez",
                  "ranking": 582
                },
                {
                  "player_name": "Alberto Calatrava",
                  "ranking": 583
                }
              ],
              "lower": [
                {
                  "player_name": "Ricardo Funez",
                  "ranking": 585
                },
                {
                  "player_name": "George Pickford",
                  "ranking": 586
                },
                {
                  "player_name": "Shane Nti",
                  "ranking": 587
                },
                {
                  "player_name": "Gnangoro Bouare Samake",
                  "ranking": 588
                },
                {
                  "player_name": "Nizar El Jmili Ben Hamou",
                  "ranking": 589
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.2,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.2,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€0) scaled to 25.3 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.44)",
              "stats": {
                "expected_goals": 0.226,
                "goal_rate": 0.14,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.081,
                "duels_won": 4,
                "aerial_won": 1,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 20,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 41,
                "possession_lost": 8.1,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_lost": 1,
                "total_contest": 5,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.171,
                "offsides": 1,
                "ball_carries": 19,
                "total_progression": 47,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 0,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "expected_goals": 0.0745,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0635,
                  "after": 0.0745
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 81.0)",
              "stats": {
                "expected_goals": 0.0745,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 584,
                "fifa_rank": 574.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 81.0
              }
            }
          ]
        }
      },
      "substitutes": {
        "Emile Smith Rowe": {
          "player_id": 867445,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 32,
          "height": 182,
          "market_value": 18300000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0078,
            "assists": 0,
            "expected_goals": 0.0089,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.9937,
            "minutes": 18,
            "total_pass": 2,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 3,
            "possession_lost": 0.424,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 2,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 1,
            "total_progression": 1,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 8.3,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.706,
            "bench_expected_minutes": 18.45,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 11,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0029,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 14,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0581,
                "expected_assists": 0.0242,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 16,
                "key_pass": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3121,
            "combined_rank_score": 1081.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 744.0,
            "sofascore_rating": 6.6676,
            "sofascore_appearances": 37.0,
            "fifa_rank": 1419.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 6.9937,
            "source_file": "data/player_rankings.csv",
            "player_name": "Emile Smith Rowe",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Youri Baas",
                  "ranking": 3116
                },
                {
                  "player_name": "Martín Satriano",
                  "ranking": 3117
                },
                {
                  "player_name": "Marcos Leonardo",
                  "ranking": 3118
                },
                {
                  "player_name": "Chidera Ejuke",
                  "ranking": 3119
                },
                {
                  "player_name": "Adrián Martínez",
                  "ranking": 3120
                }
              ],
              "lower": [
                {
                  "player_name": "Santiago Giménez",
                  "ranking": 3122
                },
                {
                  "player_name": "Mykola Shaparenko",
                  "ranking": 3123
                },
                {
                  "player_name": "Kostas Tsimikas",
                  "ranking": 3124
                },
                {
                  "player_name": "Kepa",
                  "ranking": 3125
                },
                {
                  "player_name": "Nahuel Molina",
                  "ranking": 3126
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.377,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.377,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.45,
            "bench_appearance_prob": 0.706,
            "market_value_adjustment": 1.0342,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 0.0,
              "sub_appearances": 1.0,
              "minutes_per_sub": 15.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost M_service (2 historical appearances) to 18.4 expected mins (appearance prob 0.71); FBref playing time empirical prior: 1.0 sub appearances, 15.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0367,
                "assists": 0,
                "expected_goals": 0.0359,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7624,
                "minutes": 12,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 15,
                "possession_lost": 2.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 2,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 14.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.4595,
                  "ballRecovery_p90": 2.9537,
                  "progressiveBallCarriesCount": 0.0,
                  "expectedAssists": 0.0127,
                  "ballRecovery": 0.4595
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5201387405395508,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2381
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0654
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0567
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0256
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0213
                        }
                      ],
                      "others": -0.0419,
                      "total": 0.5201
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.036694783717393875,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0197
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0126
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0057
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0041
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0038
                        }
                      ],
                      "others": -0.0103,
                      "total": 0.0367
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09466107189655304,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0057
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0048
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.004
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0038
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0034
                        }
                      ],
                      "others": 0.0064,
                      "total": 0.0947
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.035941723734140396,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0339
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0142
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0076
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0063
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0046
                        }
                      ],
                      "others": -0.0062,
                      "total": 0.0359
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.19389799237251282,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0657
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0177
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0121
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0097
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0072
                        }
                      ],
                      "others": -0.0261,
                      "total": 0.1939
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.49415266513824463,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2905
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.1305
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.071
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0591
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0455
                        }
                      ],
                      "others": -0.2006,
                      "total": 0.4942
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.762368202209473,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0695
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0237
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0151
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0148
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0141
                        }
                      ],
                      "others": 0.0376,
                      "total": 6.7624
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0342, quality 0.614)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0379,
                "assists": 0,
                "expected_goals": 0.0372,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9937,
                "minutes": 13,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 2.0684,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 3,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 18300000,
                "quality_factor": 0.614,
                "boost_factor": 1.0342
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0062)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0379,
                "assists": 0,
                "expected_goals": 0.0372,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.9937,
                "minutes": 13,
                "total_pass": 11,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 2.0684,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 3,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0062,
                "history_matches": 2,
                "prior_reliability": 0.0133,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.5111,
                  "after": 0.545
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.4 expected minutes (appearance prob 0.71)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0076,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45
              },
              "params": {
                "expected_minutes": 18.45,
                "appearance_probability": 0.706
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0076,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0089,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 77.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0078,
                "assists": 0,
                "expected_goals": 0.0089,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.9937,
                "minutes": 18,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.424,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 2,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 1,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 8.3,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.706,
                "bench_expected_minutes": 18.45,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3121,
                "fifa_rank": 1419.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "Ryan Sessegnon": {
          "player_id": 836698,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 30,
          "height": 178,
          "market_value": 21000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.9102,
            "minutes": 18,
            "total_pass": 3,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 5,
            "possession_lost": 1.6006,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0097,
            "expected_assists": 0.0313,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 7,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 50.0,
            "shotConversion": 0.0,
            "minutesPct": 22.8,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.618,
            "bench_expected_minutes": 18.02,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16363269.0,
              "match_date": "2026-09-05",
              "home_team": "Fulham",
              "away_team": "Crystal Palace",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Crystal Palace",
              "stats": {
                "minutes": 11,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0791,
                "expected_assists": 0.3199,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 14,
                "key_pass": 1,
                "interceptions": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363255.0,
              "match_date": "2026-08-30",
              "home_team": "Sunderland",
              "away_team": "Fulham",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Sunderland",
              "stats": {
                "minutes": 22,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.021,
                "expected_assists": 0.1245,
                "total_shots": 1,
                "total_pass": 16,
                "accurate_pass": 13,
                "tackles": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363244.0,
              "match_date": "2026-08-24",
              "home_team": "Fulham",
              "away_team": "Chelsea",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Fulham",
              "opponent": "Chelsea",
              "stats": {
                "minutes": 17,
                "rating": 6.6,
                "assists": 0,
                "expected_goals": 0.0325,
                "expected_assists": 0.0027,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 7,
                "accurate_pass": 4,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3091,
            "combined_rank_score": 1057.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 2.0,
            "fifa_rank": 1417.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 6.9102,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ryan Sessegnon",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Callum Wilson",
                  "ranking": 3086
                },
                {
                  "player_name": "Victor Lindelöf",
                  "ranking": 3087
                },
                {
                  "player_name": "Oscar Bobb",
                  "ranking": 3088
                },
                {
                  "player_name": "Emmanuel Agbadou",
                  "ranking": 3089
                },
                {
                  "player_name": "Luis Romo",
                  "ranking": 3090
                }
              ],
              "lower": [
                {
                  "player_name": "Albian Hajdari",
                  "ranking": 3092
                },
                {
                  "player_name": "Joe Willock",
                  "ranking": 3093
                },
                {
                  "player_name": "Adam Hložek",
                  "ranking": 3094
                },
                {
                  "player_name": "Jamie Gittens",
                  "ranking": 3095
                },
                {
                  "player_name": "Gonzalo Montiel",
                  "ranking": 3096
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.442,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.442,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.02,
            "bench_appearance_prob": 0.618,
            "market_value_adjustment": 1.0422,
            "fbref_prior_metrics": {
              "squad": "Fulham",
              "competition": "Premier League",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 21.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0333
            },
            "rationale": "Bench projection scaled from XGBoost D_service (3 historical appearances) to 18.0 expected mins (appearance prob 0.62); FBref playing time empirical prior: 2.0 sub appearances, 21.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6302,
                "minutes": 17,
                "total_pass": 13,
                "accurate_pass": 10,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 7.67,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.04,
                "expected_assists": 0.15,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 32,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-05",
                    "opponent": "Crystal Palace",
                    "minutes": 11.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Sunderland",
                    "minutes": 22.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-24",
                    "opponent": "Chelsea",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "touches_p90": 150.1431,
                  "accuratePass": 10.861,
                  "possessionLostCtrl": 7.6696,
                  "totalClearance": 0.0,
                  "totalClearance_p90": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.7403874397277832,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2619
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0388
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0356
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0293
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0241
                        }
                      ],
                      "others": 0.0223,
                      "total": 0.7404
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2459543943405151,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0519
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0513
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0506
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0472
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0453
                        }
                      ],
                      "others": 0.0344,
                      "total": 1.246
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7247443795204163,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0809
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0576
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0521
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0386
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0362
                        }
                      ],
                      "others": 0.0502,
                      "total": 0.7247
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.11260986328125,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.7667
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1799
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1262
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.053
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0496
                        }
                      ],
                      "others": -0.1152,
                      "total": 1.1126
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8060014247894287,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2737
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.044
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0265
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0234
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0201
                        }
                      ],
                      "others": -0.0886,
                      "total": 0.806
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.2626276910305023,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2544
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0563
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0441
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0196
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0178
                        }
                      ],
                      "others": -0.0022,
                      "total": 0.2626
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.6302103996276855,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0667
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0537
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0325
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0251
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0235
                        }
                      ],
                      "others": -0.0294,
                      "total": 6.6302
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0422, quality 0.641)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 17,
                "total_pass": 14,
                "accurate_pass": 11,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 7.9939,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0417,
                "expected_assists": 0.1563,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 34,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408,
                "boost_factor": 1.0422
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0135)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 17,
                "total_pass": 14,
                "accurate_pass": 11,
                "duels_won": 4,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 7,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 26,
                "possession_lost": 7.9939,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0417,
                "expected_assists": 0.1563,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 34,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": -2.2
              },
              "params": {
                "blend_weight": 0.0135,
                "history_matches": 3,
                "prior_reliability": 0.0333,
                "competition": "Premier League",
                "squad": "Fulham"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 2.7828,
                  "after": 2.9345
                },
                {
                  "stat": "totalShots",
                  "before": 0.2737,
                  "after": 0.3294
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.0,
                  "after": 0.0298
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.7717,
                  "after": 0.7883
                },
                {
                  "stat": "wonTackle",
                  "before": 0.7554,
                  "after": 0.7452
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.0 expected minutes (appearance prob 0.62)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0083,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02
              },
              "params": {
                "expected_minutes": 18.02,
                "appearance_probability": 0.618
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0083,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0097,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 77.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9102,
                "minutes": 18,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 5,
                "possession_lost": 1.6006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0097,
                "expected_assists": 0.0313,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 50.0,
                "shotConversion": 0.0,
                "minutesPct": 22.8,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.618,
                "bench_expected_minutes": 18.02,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3091,
                "fifa_rank": 1417.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        },
        "Jonah Kusi-Asare": {
          "player_id": 1503757,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 196,
          "market_value": 3300000,
          "stats": {
            "expected_goals": 0.0752,
            "goal_rate": 0.0422,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0231,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 6.9,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 2.2776,
            "dispossessed": 1.0,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0484,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 13,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.31,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 62.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 9309,
            "combined_rank_score": 7945.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 933.0,
            "sofascore_rating": 6.4667,
            "sofascore_appearances": 7.0,
            "fifa_rank": 14958.0,
            "fifa_overall": 62.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jonah Kusi-Asare",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Pietro Pellegri",
                  "ranking": 9304
                },
                {
                  "player_name": "Vakoun Issouf Bayo",
                  "ranking": 9305
                },
                {
                  "player_name": "Konan N'Dri",
                  "ranking": 9306
                },
                {
                  "player_name": "Tino Anjorin",
                  "ranking": 9307
                },
                {
                  "player_name": "Luca Moro",
                  "ranking": 9308
                }
              ],
              "lower": [
                {
                  "player_name": "Joel Drakes-Thomas",
                  "ranking": 9310
                },
                {
                  "player_name": "Matthias Braunöder",
                  "ranking": 9311
                },
                {
                  "player_name": "Bjarki Steinn Bjarkason",
                  "ranking": 9312
                },
                {
                  "player_name": "Þórir Jóhann Helgason",
                  "ranking": 9313
                },
                {
                  "player_name": "Alessandro Gabrielloni",
                  "ranking": 9314
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 25.306980405874903,
            "bench_appearance_prob": 0.5594082002670411,
            "market_value_adjustment": 0.4412,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€3,300,000) scaled to 25.3 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.44)",
              "stats": {
                "expected_goals": 0.228,
                "goal_rate": 0.15,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.082,
                "duels_won": 4,
                "aerial_won": 1,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 20,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 41,
                "possession_lost": 8.1,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_lost": 1,
                "total_contest": 5,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.172,
                "offsides": 1,
                "ball_carries": 19,
                "total_progression": 47,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 3300000,
                "quality_factor": 0.4412
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0641,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31
              },
              "params": {
                "expected_minutes": 25.31,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0641,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "expected_goals": 0.0752,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0641,
                  "after": 0.0752
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 62.0)",
              "stats": {
                "expected_goals": 0.0752,
                "goal_rate": 0.0422,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0231,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2776,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0484,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.31,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 62.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 9309,
                "fifa_rank": 14958.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 62.0
              }
            }
          ]
        },
        "Aidan Evans": {
          "player_id": 2350446,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 43,
          "height": 160,
          "market_value": 0,
          "stats": {
            "expected_goals": 0.0745,
            "goal_rate": 0.0393,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0228,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 6.9,
            "minutes": 25,
            "total_pass": 8,
            "accurate_pass": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 12,
            "possession_lost": 2.2763,
            "dispossessed": 1.0,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0481,
            "offsides": 1,
            "ball_carries": 5,
            "total_progression": 13,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.559,
            "bench_expected_minutes": 25.29,
            "projected_substitution_order": 4,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 2.772,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 81.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 584,
            "combined_rank_score": 441.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 574.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 6.9,
            "source_file": "data/player_rankings.csv",
            "player_name": "Aidan Evans",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Igor Galdin",
                  "ranking": 579
                },
                {
                  "player_name": "Manel Usedo Domingo",
                  "ranking": 580
                },
                {
                  "player_name": "Owen Asemota",
                  "ranking": 581
                },
                {
                  "player_name": "Hugo Pérez",
                  "ranking": 582
                },
                {
                  "player_name": "Alberto Calatrava",
                  "ranking": 583
                }
              ],
              "lower": [
                {
                  "player_name": "Ricardo Funez",
                  "ranking": 585
                },
                {
                  "player_name": "George Pickford",
                  "ranking": 586
                },
                {
                  "player_name": "Shane Nti",
                  "ranking": 587
                },
                {
                  "player_name": "Gnangoro Bouare Samake",
                  "ranking": 588
                },
                {
                  "player_name": "Nizar El Jmili Ben Hamou",
                  "ranking": 589
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.2,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.2,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 25.292222187561247,
            "bench_appearance_prob": 0.5587373721618749,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€0) scaled to 25.3 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.44)",
              "stats": {
                "expected_goals": 0.226,
                "goal_rate": 0.14,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.081,
                "duels_won": 4,
                "aerial_won": 1,
                "rating": 6.9,
                "minutes": 90,
                "total_pass": 28,
                "accurate_pass": 20,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 10,
                "crosses_total": 1,
                "crosses_accurate": 1,
                "touches": 41,
                "possession_lost": 8.1,
                "dispossessed": 1.0,
                "duels_lost": 4,
                "aerial_lost": 1,
                "total_contest": 5,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.171,
                "offsides": 1,
                "ball_carries": 19,
                "total_progression": 47,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 0,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "expected_minutes": 25.29,
                "appearance_probability": 0.559
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0635,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 1.15 (squad xG sum 0.9789, xG scale 1.1738)",
              "stats": {
                "expected_goals": 0.0745,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 1.149,
                "squad_xg_sum": 0.9789,
                "xg_scale": 1.1738,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0635,
                  "after": 0.0745
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 81.0)",
              "stats": {
                "expected_goals": 0.0745,
                "goal_rate": 0.0393,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0228,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 6.9,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.2763,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0481,
                "offsides": 1,
                "ball_carries": 5,
                "total_progression": 13,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.559,
                "bench_expected_minutes": 25.29,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 2.772,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 584,
                "fifa_rank": 574.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 81.0
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 1,
        "expected_goals": 1.15,
        "expected_assists": 0.82,
        "total_shots": 16,
        "shots_on_target": 3,
        "total_passes": 483,
        "interceptions": 3,
        "tackles": 7,
        "avg_rating": 7.13,
        "possession_estimated_pct": 48.9,
        "pressing_actions_per_90": 7.6
      }
    },
    "Man Utd": {
      "formation": "3-4-2-1",
      "players": {
        "Senne Lammens": {
          "player_id": 964753,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 193,
          "market_value": 38000000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.0,
            "rating": 7.3794,
            "minutes": 95,
            "total_pass": 21,
            "accurate_pass": 16,
            "duels_won": 0,
            "total_long_balls": 8,
            "accurate_long_balls": 3,
            "touches": 31,
            "clearances": 1,
            "ball_recovery": 10,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 3,
            "possession_lost": 5.0481,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 15,
            "accurate_own_half_passes": 14,
            "expected_saves": 1.29,
            "high_pressure_saves": 0.49,
            "shots_faced": 2.8,
            "opponent_faced": "Gonzalo García, Oscar Bobb",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 90,
                "rating": 6.1,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 14,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 14,
                "saves": 4,
                "goals_prevented": -0.9145
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 20,
                "accurate_pass": 18,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 6,
                "saves": 3,
                "goals_prevented": 0.4931
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_assists": 0.0004,
                "total_shots": 0,
                "total_pass": 17,
                "accurate_pass": 12,
                "clearances": 2,
                "ball_recovery": 8,
                "saves": 2,
                "goals_prevented": -0.0734
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 551,
            "combined_rank_score": 305.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 229.0,
            "sofascore_rating": 7.15,
            "sofascore_appearances": 2.0,
            "fifa_rank": 381.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "projected_match_rating": 7.3794,
            "source_file": "data/player_rankings.csv",
            "player_name": "Senne Lammens",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Raniele",
                  "ranking": 546
                },
                {
                  "player_name": "David Button",
                  "ranking": 547
                },
                {
                  "player_name": "Demethryus",
                  "ranking": 548
                },
                {
                  "player_name": "Pil-su Choi",
                  "ranking": 549
                },
                {
                  "player_name": "Aaron Mayol",
                  "ranking": 550
                }
              ],
              "lower": [
                {
                  "player_name": "Agustín Arce",
                  "ranking": 552
                },
                {
                  "player_name": "Alejandro Panach Olmo",
                  "ranking": 553
                },
                {
                  "player_name": "Edu Altozano",
                  "ranking": 554
                },
                {
                  "player_name": "Joseph Otunenche",
                  "ranking": 555
                },
                {
                  "player_name": "Dean Huijsen",
                  "ranking": 556
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "G_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "accurateLongBalls",
              "totalOwnHalfPasses",
              "accurateOwnHalfPasses",
              "saves",
              "savedShotsFromInsideTheBox",
              "goodHighClaim",
              "punches",
              "aerialWon",
              "totalKeeperSweeper",
              "accurateKeeperSweeper",
              "totalClearance",
              "ballRecovery",
              "touches",
              "possessionLostCtrl",
              "kilometersCovered",
              "passValueNormalized",
              "defensiveValueNormalized",
              "goalkeeperValueNormalized",
              "pass_accuracy",
              "long_ball_accuracy",
              "save_contribution",
              "inside_box_save_rate",
              "sweeper_accuracy",
              "sweeper_actions_p90",
              "distribution_accuracy",
              "commanding_index",
              "gk_coverage",
              "history_matches"
            ],
            "targets_predicted": [
              "saves",
              "goalsPrevented",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.081,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (G_service) evaluated 3 historical appearances across 3 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 6.8267,
                "minutes": 90,
                "total_pass": 19,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "touches": 29,
                "clearances": 1,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 4.67,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 13
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 3,
                  "trained_at": "2026-09-15T10:01:40.064367+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 113,
                    "rows": 393
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "sweeper_actions_p90": 0.6113,
                  "touches": 29.3819,
                  "totalOwnHalfPasses": 14.4208,
                  "punches": 0.3304,
                  "distribution_accuracy": 0.9272,
                  "accurateKeeperSweeper": 0.6113
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.5563244819641113,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0587
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0534
                      },
                      {
                        "name": "touches",
                        "importance": 0.0497
                      },
                      {
                        "name": "totalOwnHalfPasses",
                        "importance": 0.049
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": 2.9806,
                      "items": [
                        {
                          "name": "touches",
                          "contribution": -0.2021
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0835
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0759
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": -0.0602
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0401
                        }
                      ],
                      "others": 0.0375,
                      "total": 2.5563
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.0,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.053
                      },
                      {
                        "name": "punches",
                        "importance": 0.051
                      },
                      {
                        "name": "touches",
                        "importance": 0.0482
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0468
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0432
                      }
                    ],
                    "decomposition": {
                      "base": -0.0536,
                      "items": [
                        {
                          "name": "touches",
                          "contribution": -0.1442
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.082
                        },
                        {
                          "name": "commanding_index",
                          "contribution": -0.0677
                        },
                        {
                          "name": "distribution_accuracy",
                          "contribution": 0.0418
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0359
                        }
                      ],
                      "others": -0.0587,
                      "total": -0.2363
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.826699256896973,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0593
                      },
                      {
                        "name": "touches",
                        "importance": 0.0495
                      },
                      {
                        "name": "distribution_accuracy",
                        "importance": 0.0484
                      },
                      {
                        "name": "savedShotsFromInsideTheBox",
                        "importance": 0.0468
                      },
                      {
                        "name": "punches",
                        "importance": 0.0464
                      }
                    ],
                    "decomposition": {
                      "base": 7.0716,
                      "items": [
                        {
                          "name": "touches",
                          "contribution": -0.1162
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0793
                        },
                        {
                          "name": "commanding_index",
                          "contribution": -0.0712
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0406
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0372
                        }
                      ],
                      "others": -0.059,
                      "total": 6.8267
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0810, quality 0.770)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.3794,
                "minutes": 95,
                "total_pass": 21,
                "accurate_pass": 16,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 31,
                "clearances": 1,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 5.0481,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14
              },
              "params": {
                "market_value_eur": 38000000,
                "quality_factor": 0.7699,
                "boost_factor": 1.081
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.3794,
                "minutes": 95,
                "total_pass": 21,
                "accurate_pass": 16,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 31,
                "clearances": 1,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 5.0481,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.3794,
                "minutes": 95,
                "total_pass": 21,
                "accurate_pass": 16,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 31,
                "clearances": 1,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 5.0481,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.29,
                "high_pressure_saves": 0.49,
                "shots_faced": 2.8,
                "opponent_faced": "Gonzalo García, Oscar Bobb",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Gonzalo García, Oscar Bobb",
                  "matchup_zone": "Goalkeeper shot-stopping context"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.3794,
                "minutes": 95,
                "total_pass": 21,
                "accurate_pass": 16,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 31,
                "clearances": 1,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 5.0481,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.29,
                "high_pressure_saves": 0.49,
                "shots_faced": 2.8,
                "opponent_faced": "Gonzalo García, Oscar Bobb",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 11, fifa_overall 82.0)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.3794,
                "minutes": 95,
                "total_pass": 21,
                "accurate_pass": 16,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 31,
                "clearances": 1,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 5.0481,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.29,
                "high_pressure_saves": 0.49,
                "shots_faced": 2.8,
                "opponent_faced": "Gonzalo García, Oscar Bobb",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 551,
                "fifa_rank": 381.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.3794,
                "minutes": 95,
                "total_pass": 21,
                "accurate_pass": 16,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 31,
                "clearances": 1,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 5.0481,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.29,
                "high_pressure_saves": 0.49,
                "shots_faced": 2.8,
                "opponent_faced": "Gonzalo García, Oscar Bobb",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0,
                "rating": 7.3794,
                "minutes": 95,
                "total_pass": 21,
                "accurate_pass": 16,
                "duels_won": 0,
                "total_long_balls": 8,
                "accurate_long_balls": 3,
                "touches": 31,
                "clearances": 1,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 3,
                "possession_lost": 5.0481,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14,
                "expected_saves": 1.29,
                "high_pressure_saves": 0.49,
                "shots_faced": 2.8,
                "opponent_faced": "Gonzalo García, Oscar Bobb",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 11.6952,
                "weight_share": 0.0,
                "position_multiplier": 0.0
              }
            }
          ]
        },
        "Lisandro Martínez": {
          "player_id": 859999,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 6,
          "height": 175,
          "market_value": 48000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 2,
            "total_shots": 1,
            "rating": 7.4481,
            "minutes": 95,
            "total_pass": 74,
            "accurate_pass": 69,
            "duels_won": 3,
            "total_long_balls": 6,
            "accurate_long_balls": 3,
            "total_own_half_passes": 52,
            "accurate_own_half_passes": 50,
            "total_opp_half_passes": 22,
            "accurate_opp_half_passes": 19,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 84,
            "possession_lost": 6.0228,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_lost": 2,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0329,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 29,
            "total_progression": 113,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "tackles_in_zone": 1.1,
            "tackles_won_in_zone": 1.3,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 1.1,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Gonzalo García",
            "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0408,
            "projected_assists": 0,
            "assist_probability": 0.0131,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0021,
                "total_shots": 0,
                "total_pass": 44,
                "accurate_pass": 43,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 3,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.0267,
                "expected_assists": 0.0573,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 92,
                "accurate_pass": 83,
                "aerial_won": 3,
                "duels_won": 3,
                "ball_recovery": 6
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 431,
            "combined_rank_score": 262.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 148.0,
            "sofascore_rating": 7.32,
            "sofascore_appearances": 5.0,
            "fifa_rank": 377.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "projected_match_rating": 7.4481,
            "source_file": "data/player_rankings.csv",
            "player_name": "Lisandro Martínez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Dani Olmo",
                  "ranking": 426
                },
                {
                  "player_name": "Piotr Zieliński",
                  "ranking": 427
                },
                {
                  "player_name": "Anvar Gofurov",
                  "ranking": 428
                },
                {
                  "player_name": "Ibrokhimkhalil Yuldoshev",
                  "ranking": 429
                },
                {
                  "player_name": "Iliman Ndiaye",
                  "ranking": 430
                }
              ],
              "lower": [
                {
                  "player_name": "Park Chang-Hwan",
                  "ranking": 432
                },
                {
                  "player_name": "Venício Tomás",
                  "ranking": 433
                },
                {
                  "player_name": "Edoardo Colombo",
                  "ranking": 434
                },
                {
                  "player_name": "Teddy Sharman-Lowe",
                  "ranking": 435
                },
                {
                  "player_name": "Charles Lokolingoy",
                  "ranking": 436
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.095,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 2 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 6.8016,
                "minutes": 90,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 48,
                "accurate_own_half_passes": 46,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 18,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 76,
                "possession_lost": 5.5,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.03,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 104,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "touches_p90": 74.9189,
                  "accuratePass": 61.3784,
                  "possessionLostCtrl": 5.1351,
                  "totalClearance": 3.7838,
                  "totalClearance_p90": 3.7838
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9262356758117676,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0365
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0359
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0132
                        },
                        {
                          "name": "error_severity",
                          "contribution": -0.0104
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0101
                        }
                      ],
                      "others": -0.0233,
                      "total": 0.9262
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1996419429779053,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0595
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0483
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0458
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0358
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0286
                        }
                      ],
                      "others": -0.1283,
                      "total": 1.1996
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.833434522151947,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.089
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0533
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0513
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0422
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.037
                        }
                      ],
                      "others": -0.0549,
                      "total": 0.8334
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.708449363708496,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.3297
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.2958
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.2087
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.2122
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.1899
                        }
                      ],
                      "others": 0.0689,
                      "total": 4.7084
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.5423115491867065,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.0975
                        },
                        {
                          "name": "error_severity",
                          "contribution": 0.0785
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0772
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0812
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0505
                        }
                      ],
                      "others": -0.0847,
                      "total": 1.5423
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.5376914739608765,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0969
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0414
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0278
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0222
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0202
                        }
                      ],
                      "others": -0.027,
                      "total": 0.5377
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.801591396331787,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": 0.0466
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0444
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0357
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0355
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0291
                        }
                      ],
                      "others": 0.09,
                      "total": 6.8016
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0950, quality 0.817)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.4481,
                "minutes": 95,
                "total_pass": 74,
                "accurate_pass": 69,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 50,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 6.0228,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0329,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 113,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 48000000,
                "quality_factor": 0.8168,
                "boost_factor": 1.095
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.4481,
                "minutes": 95,
                "total_pass": 74,
                "accurate_pass": 69,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 50,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 6.0228,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0329,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 113,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.4481,
                "minutes": 95,
                "total_pass": 74,
                "accurate_pass": 69,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 50,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 6.0228,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0329,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 113,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Gonzalo García",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.4481,
                "minutes": 95,
                "total_pass": 74,
                "accurate_pass": 69,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 50,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 6.0228,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0329,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 113,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 6, fifa_overall 82.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.4481,
                "minutes": 95,
                "total_pass": 74,
                "accurate_pass": 69,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 50,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 6.0228,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0329,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 113,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 431,
                "fifa_rank": 377.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.4481,
                "minutes": 95,
                "total_pass": 74,
                "accurate_pass": 69,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 50,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 6.0228,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0329,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 113,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0408,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0408,
                "scorer_weight": 0.3339,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0138,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.4481,
                "minutes": 95,
                "total_pass": 74,
                "accurate_pass": 69,
                "duels_won": 3,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 52,
                "accurate_own_half_passes": 50,
                "total_opp_half_passes": 22,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 6.0228,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0329,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 113,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0408,
                "projected_assists": 0,
                "assist_probability": 0.0131,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0131,
                "provider_weight": 0.1535,
                "squad_weight_total": 11.6952,
                "weight_share": 0.0131,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Leny Yoro": {
          "player_id": 1153315,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 15,
          "height": 190,
          "market_value": 46000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 7.2748,
            "minutes": 16,
            "total_pass": 13,
            "accurate_pass": 12,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 8,
            "accurate_opp_half_passes": 7,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 17,
            "possession_lost": 2.1853,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0109,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 78,
            "progressive_carries": 2,
            "key_pass": 0,
            "shots_off_target": 0,
            "tackles_in_zone": 1.1,
            "tackles_won_in_zone": 1.3,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 1.1,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Gonzalo García",
            "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "antagonist_source": "defensive_duel",
            "projected_goals": 0,
            "goal_probability": 0.0545,
            "projected_assists": 0,
            "assist_probability": 0.0077,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 13,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0144,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 5,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 16,
                "rating": 6.3,
                "assists": 0,
                "expected_assists": 0.0084,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 17,
                "interceptions": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2687,
            "combined_rank_score": 939.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 757.0,
            "sofascore_rating": 6.6567,
            "sofascore_appearances": 32.0,
            "fifa_rank": 1121.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "projected_match_rating": 7.2748,
            "source_file": "data/player_rankings.csv",
            "player_name": "Leny Yoro",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Park Tae-yong",
                  "ranking": 2682
                },
                {
                  "player_name": "Valentín Barco",
                  "ranking": 2683
                },
                {
                  "player_name": "Denis Bouanga",
                  "ranking": 2684
                },
                {
                  "player_name": "Paulo Gazzaniga",
                  "ranking": 2685
                },
                {
                  "player_name": "Evander",
                  "ranking": 2686
                }
              ],
              "lower": [
                {
                  "player_name": "Josh Cullen",
                  "ranking": 2688
                },
                {
                  "player_name": "Jorge Espejo",
                  "ranking": 2689
                },
                {
                  "player_name": "Samuele Zannoni",
                  "ranking": 2690
                },
                {
                  "player_name": "Sukhrobjon Parmonkulov",
                  "ranking": 2691
                },
                {
                  "player_name": "Hislat Khalilov",
                  "ranking": 2692
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.375,
          "history_matches": 2,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0927,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 2 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.6579,
                "minutes": 14,
                "total_pass": 12,
                "accurate_pass": 11,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 2.0,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.01,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 72,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 16.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "touches_p90": 95.4379,
                  "accuratePass": 10.5135,
                  "possessionLostCtrl": 2.0,
                  "totalClearance": 0.5405,
                  "totalClearance_p90": 3.7422
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9686161875724792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0564
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0453
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0431
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0429
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0289
                        }
                      ],
                      "others": -0.0148,
                      "total": 0.9686
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.2756990194320679,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "totalProgression",
                          "contribution": 0.0625
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0563
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0514
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.042
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0391
                        }
                      ],
                      "others": 0.0467,
                      "total": 1.2757
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.7658892273902893,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0616
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0496
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0379
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0324
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0274
                        }
                      ],
                      "others": -0.0123,
                      "total": 0.7659
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.837106466293335,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.4595
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.3344
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.3206
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2514
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.1808
                        }
                      ],
                      "others": -0.1634,
                      "total": 2.8371
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9371070861816406,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.1199
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0654
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0398
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0326
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0303
                        }
                      ],
                      "others": -0.1428,
                      "total": 0.9371
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.44626662135124207,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0426
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0362
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0241
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0235
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0227
                        }
                      ],
                      "others": -0.0184,
                      "total": 0.4463
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.657888889312744,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0643
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0321
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0316
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0295
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0246
                        }
                      ],
                      "others": 0.0487,
                      "total": 6.6579
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0927, quality 0.809)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.2748,
                "minutes": 16,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 2.1853,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 78,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 46000000,
                "quality_factor": 0.8089,
                "boost_factor": 1.0927
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.2748,
                "minutes": 16,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 2.1853,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 78,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.2748,
                "minutes": 16,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 2.1853,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 78,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Gonzalo García",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.2748,
                "minutes": 16,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 2.1853,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 78,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 7, fifa_overall 78.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.2748,
                "minutes": 16,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 2.1853,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 78,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2687,
                "fifa_rank": 1121.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.2748,
                "minutes": 16,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 2.1853,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 78,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0545,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0545,
                "scorer_weight": 0.4481,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0185,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 7.2748,
                "minutes": 16,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 8,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 2.1853,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0109,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 78,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.3,
                "interceptions_in_zone": 1.3,
                "clearances_in_zone": 1.1,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Gonzalo García",
                "pressing_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "antagonist_source": "defensive_duel",
                "projected_goals": 0,
                "goal_probability": 0.0545,
                "projected_assists": 0,
                "assist_probability": 0.0077,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0077,
                "provider_weight": 0.0896,
                "squad_weight_total": 11.6952,
                "weight_share": 0.0077,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Ayden Heaven": {
          "player_id": 1445799,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 26,
          "height": 189,
          "market_value": 32000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 7.1837,
            "minutes": 95,
            "total_pass": 72,
            "accurate_pass": 65,
            "duels_won": 5,
            "total_long_balls": 5,
            "accurate_long_balls": 1,
            "total_own_half_passes": 43,
            "accurate_own_half_passes": 40,
            "total_opp_half_passes": 29,
            "accurate_opp_half_passes": 26,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 81,
            "possession_lost": 8.5568,
            "dispossessed": 1.0696,
            "duels_lost": 6,
            "aerial_lost": 4,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 1,
            "fouls_drawn": 2,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.2367,
            "expected_assists": 0.0428,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 32,
            "total_progression": 64,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 1,
            "opponent_faced": "Gonzalo García",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0932,
            "projected_assists": 0,
            "assist_probability": 0.0138,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.1212,
                "expected_assists": 0.0358,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 67,
                "accurate_pass": 61,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3363,
            "combined_rank_score": 1313.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 442.0,
            "sofascore_rating": 6.9067,
            "sofascore_appearances": 17.0,
            "fifa_rank": 2184.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "projected_match_rating": 7.1837,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ayden Heaven",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Billy Gilmour",
                  "ranking": 3358
                },
                {
                  "player_name": "Bernardo",
                  "ranking": 3359
                },
                {
                  "player_name": "Lucas Torró",
                  "ranking": 3360
                },
                {
                  "player_name": "Kyle Walker",
                  "ranking": 3361
                },
                {
                  "player_name": "Nikola Moro",
                  "ranking": 3362
                }
              ],
              "lower": [
                {
                  "player_name": "Aron Dønnum",
                  "ranking": 3364
                },
                {
                  "player_name": "Iñaki Peña",
                  "ranking": 3365
                },
                {
                  "player_name": "Liam Scales",
                  "ranking": 3366
                },
                {
                  "player_name": "Matías Vecino",
                  "ranking": 3367
                },
                {
                  "player_name": "Maxime Estève",
                  "ranking": 3368
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0696,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 1 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.7162,
                "minutes": 90,
                "total_pass": 67,
                "accurate_pass": 61,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 40,
                "accurate_own_half_passes": 37,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 76,
                "possession_lost": 8.0,
                "dispossessed": 1.0,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.12,
                "expected_assists": 0.04,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 30,
                "total_progression": 60,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "touches_p90": 76.0,
                  "accuratePass": 61.0,
                  "possessionLostCtrl": 8.0,
                  "totalClearance": 1.0,
                  "totalClearance_p90": 1.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.9250907301902771,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0393
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0276
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0125
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0123
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0105
                        }
                      ],
                      "others": -0.0173,
                      "total": 0.9251
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1707367897033691,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": 0.0682
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0635
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0412
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0371
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0349
                        }
                      ],
                      "others": -0.0761,
                      "total": 1.1707
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6872866749763489,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0666
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0482
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0354
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0319
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0245
                        }
                      ],
                      "others": 0.0264,
                      "total": 0.6873
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.915891647338867,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2947
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.2983
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.2842
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.2328
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1947
                        }
                      ],
                      "others": 0.5974,
                      "total": 4.9159
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.310484528541565,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.0835
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0628
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0522
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0499
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0499
                        }
                      ],
                      "others": -0.0257,
                      "total": 1.3105
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7739688754081726,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1086
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0665
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0506
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0236
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0179
                        }
                      ],
                      "others": 0.0506,
                      "total": 0.774
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.716231346130371,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0564
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0457
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0309
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0274
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0231
                        }
                      ],
                      "others": 0.0232,
                      "total": 6.7162
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0696, quality 0.732)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.1837,
                "minutes": 95,
                "total_pass": 72,
                "accurate_pass": 65,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.5568,
                "dispossessed": 1.0696,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1284,
                "expected_assists": 0.0428,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 32,
                "total_progression": 64,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 32000000,
                "quality_factor": 0.732,
                "boost_factor": 1.0696
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.1837,
                "minutes": 95,
                "total_pass": 72,
                "accurate_pass": 65,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.5568,
                "dispossessed": 1.0696,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1284,
                "expected_assists": 0.0428,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 32,
                "total_progression": 64,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.1837,
                "minutes": 95,
                "total_pass": 72,
                "accurate_pass": 65,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.5568,
                "dispossessed": 1.0696,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.1284,
                "expected_assists": 0.0428,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 32,
                "total_progression": 64,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "opponent_faced": "Gonzalo García",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Gonzalo García",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.1837,
                "minutes": 95,
                "total_pass": 72,
                "accurate_pass": 65,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.5568,
                "dispossessed": 1.0696,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.2367,
                "expected_assists": 0.0428,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 32,
                "total_progression": 64,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "opponent_faced": "Gonzalo García",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1284,
                  "after": 0.2367
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 15, fifa_overall 75.0)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.1837,
                "minutes": 95,
                "total_pass": 72,
                "accurate_pass": 65,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.5568,
                "dispossessed": 1.0696,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.2367,
                "expected_assists": 0.0428,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 32,
                "total_progression": 64,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "opponent_faced": "Gonzalo García",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3363,
                "fifa_rank": 2184.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.1837,
                "minutes": 95,
                "total_pass": 72,
                "accurate_pass": 65,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.5568,
                "dispossessed": 1.0696,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.2367,
                "expected_assists": 0.0428,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 32,
                "total_progression": 64,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "opponent_faced": "Gonzalo García",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0932,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0932,
                "scorer_weight": 0.7771,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0321,
                "position_multiplier": 0.38
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 7.1837,
                "minutes": 95,
                "total_pass": 72,
                "accurate_pass": 65,
                "duels_won": 5,
                "total_long_balls": 5,
                "accurate_long_balls": 1,
                "total_own_half_passes": 43,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.5568,
                "dispossessed": 1.0696,
                "duels_lost": 6,
                "aerial_lost": 4,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 1,
                "fouls_drawn": 2,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.2367,
                "expected_assists": 0.0428,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 32,
                "total_progression": 64,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 1,
                "opponent_faced": "Gonzalo García",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0932,
                "projected_assists": 0,
                "assist_probability": 0.0138,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0138,
                "provider_weight": 0.1617,
                "squad_weight_total": 11.6952,
                "weight_share": 0.0138,
                "position_multiplier": 0.45
              }
            }
          ]
        },
        "Kobbie Mainoo": {
          "player_id": 1142175,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 37,
          "height": 184,
          "market_value": 72000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0945,
            "assists": 0,
            "expected_goals": 0.1125,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 7.9316,
            "minutes": 69,
            "total_pass": 59,
            "accurate_pass": 54,
            "duels_won": 6,
            "total_long_balls": 3,
            "accurate_long_balls": 2,
            "total_own_half_passes": 23,
            "accurate_own_half_passes": 21,
            "total_opp_half_passes": 36,
            "accurate_opp_half_passes": 33,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 73,
            "possession_lost": 7.4172,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 26,
            "total_progression": 97,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.2,
            "crosses_attempted": 3.1,
            "duel_win_rate": 0.46,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "LWB vs RWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Sander Berge",
            "opponent_faced": "Sander Berge",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0693,
            "projected_assists": 0,
            "assist_probability": 0.1327,
            "fifa_overall": 81.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 84,
                "rating": 7.6,
                "assists": 1,
                "expected_assists": 0.072,
                "total_shots": 0,
                "total_pass": 77,
                "accurate_pass": 74,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 5,
                "ball_recovery": 10
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 80,
                "rating": 7.8,
                "assists": 0,
                "expected_goals": 0.1378,
                "expected_assists": 0.2677,
                "total_shots": 3,
                "total_pass": 51,
                "accurate_pass": 46,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "duels_won": 9,
                "ball_recovery": 10
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 23,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0705,
                "expected_assists": 0.0149,
                "total_shots": 1,
                "total_pass": 30,
                "accurate_pass": 26,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 726,
            "combined_rank_score": 350.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 172.0,
            "sofascore_rating": 7.25,
            "sofascore_appearances": 2.0,
            "fifa_rank": 529.0,
            "fifa_overall": 81.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "projected_match_rating": 7.9316,
            "source_file": "data/player_rankings.csv",
            "player_name": "Kobbie Mainoo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nikola Šipčić",
                  "ranking": 721
                },
                {
                  "player_name": "Kwak Yun-Ho",
                  "ranking": 722
                },
                {
                  "player_name": "Ju-seong Uh",
                  "ranking": 723
                },
                {
                  "player_name": "Beom-kyeong Choi",
                  "ranking": 724
                },
                {
                  "player_name": "Song-hun Shin",
                  "ranking": 725
                }
              ],
              "lower": [
                {
                  "player_name": "Michael Kayode",
                  "ranking": 727
                },
                {
                  "player_name": "Sava Petrov",
                  "ranking": 728
                },
                {
                  "player_name": "Brayan Rovira",
                  "ranking": 729
                },
                {
                  "player_name": "José Carabalí",
                  "ranking": 730
                },
                {
                  "player_name": "Gustavo Gómez",
                  "ranking": 731
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.112,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0849,
                "assists": 0,
                "expected_goals": 0.0548,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1326,
                "minutes": 62,
                "total_pass": 53,
                "accurate_pass": 49,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 32,
                "accurate_opp_half_passes": 30,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 65,
                "possession_lost": 6.67,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 23,
                "total_progression": 87,
                "progressive_carries": 1,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 7.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.2721,
                  "ballRecovery_p90": 8.9811,
                  "progressiveBallCarriesCount": 1.1079,
                  "expectedAssists": 0.1206,
                  "ballRecovery": 7.4723
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.2855857610702515,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0782
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0594
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0616
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0513
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0504
                        }
                      ],
                      "others": 0.0156,
                      "total": 1.2856
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08493561297655106,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0167
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0106
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0063
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0057
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0052
                        }
                      ],
                      "others": -0.0087,
                      "total": 0.0849
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.1141863763332367,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0077
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0044
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0045
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0047
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0043
                        }
                      ],
                      "others": -0.007,
                      "total": 0.1142
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.05483555793762207,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0161
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0126
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0097
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0079
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0068
                        }
                      ],
                      "others": -0.0008,
                      "total": 0.0548
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.24705009162425995,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0636
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0126
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0117
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0089
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0062
                        }
                      ],
                      "others": -0.0057,
                      "total": 0.2471
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7193153500556946,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0722
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0636
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0512
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0484
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0444
                        }
                      ],
                      "others": -0.2037,
                      "total": 0.7193
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.13262414932251,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "touches_p90",
                          "contribution": 0.0494
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0433
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0257
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0241
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0215
                        }
                      ],
                      "others": 0.1368,
                      "total": 7.1326
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1120, quality 0.873)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0945,
                "assists": 0,
                "expected_goals": 0.061,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.9316,
                "minutes": 69,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 36,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 73,
                "possession_lost": 7.4172,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 72000000,
                "quality_factor": 0.8734,
                "boost_factor": 1.112
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0945,
                "assists": 0,
                "expected_goals": 0.061,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.9316,
                "minutes": 69,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 36,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 73,
                "possession_lost": 7.4172,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0945,
                "assists": 0,
                "expected_goals": 0.061,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.9316,
                "minutes": 69,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 36,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 73,
                "possession_lost": 7.4172,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.46,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sander Berge",
                "opponent_faced": "Sander Berge",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Sander Berge",
                  "matchup_zone": "LWB vs RWB",
                  "duel_win_rate": 0.46,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 0.7999,
                  "after": 1.0
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0945,
                "assists": 0,
                "expected_goals": 0.1125,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.9316,
                "minutes": 69,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 36,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 73,
                "possession_lost": 7.4172,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.46,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sander Berge",
                "opponent_faced": "Sander Berge",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.061,
                  "after": 0.1125
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 4, fifa_overall 81.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0945,
                "assists": 0,
                "expected_goals": 0.1125,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.9316,
                "minutes": 69,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 36,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 73,
                "possession_lost": 7.4172,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.46,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sander Berge",
                "opponent_faced": "Sander Berge",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 81.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 726,
                "fifa_rank": 529.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 81.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0945,
                "assists": 0,
                "expected_goals": 0.1125,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.9316,
                "minutes": 69,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 36,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 73,
                "possession_lost": 7.4172,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.46,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sander Berge",
                "opponent_faced": "Sander Berge",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0693,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0693,
                "scorer_weight": 0.5731,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0237,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0945,
                "assists": 0,
                "expected_goals": 0.1125,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.9316,
                "minutes": 69,
                "total_pass": 59,
                "accurate_pass": 54,
                "duels_won": 6,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 23,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 36,
                "accurate_opp_half_passes": 33,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 73,
                "possession_lost": 7.4172,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 97,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.2,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.46,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Sander Berge",
                "opponent_faced": "Sander Berge",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0693,
                "projected_assists": 0,
                "assist_probability": 0.1327,
                "fifa_overall": 81.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1327,
                "provider_weight": 1.552,
                "squad_weight_total": 11.6952,
                "weight_share": 0.1327,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Carlos Baleba": {
          "player_id": 1199043,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 20,
          "height": 179,
          "market_value": 53000000,
          "stats": {
            "key_pass": 2,
            "assists": 1,
            "expected_assists": 0.213,
            "expected_goals": 0.2526,
            "total_shots": 2,
            "total_pass": 67,
            "accurate_pass": 54,
            "ball_recovery": 7,
            "duels_won": 8,
            "rating": 7.5,
            "minutes": 90,
            "total_long_balls": 6,
            "accurate_long_balls": 4,
            "total_own_half_passes": 27,
            "accurate_own_half_passes": 22,
            "total_opp_half_passes": 27,
            "accurate_opp_half_passes": 20,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 79,
            "possession_lost": 10.8,
            "dispossessed": 1.1,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 2,
            "tackles_won": 2,
            "tackles": 3,
            "clearances": 1,
            "total_contest": 5,
            "won_contest": 3,
            "challenges_lost": 2,
            "fouls": 2,
            "fouls_drawn": 2,
            "goal_rate": 0.1,
            "goals": 0,
            "shots_on_target": 1,
            "shots_off_target": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.093,
            "ball_carries": 40,
            "total_progression": 107,
            "progressive_carries": 10,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.4,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.545,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Joshua King",
            "opponent_faced": "Joshua King",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.187,
            "projected_assists": 1,
            "assist_probability": 0.2496,
            "fifa_overall": 80.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 1907,
            "combined_rank_score": 737.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 775.0,
            "sofascore_rating": 6.64,
            "sofascore_appearances": 31.0,
            "fifa_rank": 700.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "projected_match_rating": 7.5,
            "source_file": "data/player_rankings.csv",
            "player_name": "Carlos Baleba",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Santi Comesaña",
                  "ranking": 1902
                },
                {
                  "player_name": "Federico Lanzillotta",
                  "ranking": 1903
                },
                {
                  "player_name": "Dong-su Lee",
                  "ranking": 1904
                },
                {
                  "player_name": "Armand Laurienté",
                  "ranking": 1905
                },
                {
                  "player_name": "Álex Jiménez",
                  "ranking": 1906
                }
              ],
              "lower": [
                {
                  "player_name": "Ibrahim Sangaré",
                  "ranking": 1908
                },
                {
                  "player_name": "Ramy Najjarine",
                  "ranking": 1909
                },
                {
                  "player_name": "Pape Matar Sarr",
                  "ranking": 1910
                },
                {
                  "player_name": "Christian Moreno",
                  "ranking": 1911
                },
                {
                  "player_name": "Juan Fuentes",
                  "ranking": 1912
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "M_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "market_value_adjustment": 0.834,
            "fbref_prior_metrics": null,
            "rationale": "Market-value baseline (€53,000,000) applied for position M (quality factor 0.83)."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position M (quality 0.83)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.213,
                "expected_goals": 0.137,
                "total_shots": 2,
                "total_pass": 67,
                "accurate_pass": 54,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.5,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 79,
                "possession_lost": 10.8,
                "dispossessed": 1.1,
                "duels_lost": 5,
                "aerial_won": 2,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.093,
                "ball_carries": 40,
                "total_progression": 107,
                "progressive_carries": 10
              },
              "params": {
                "market_value_eur": 53000000,
                "quality_factor": 0.834
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.213,
                "expected_goals": 0.137,
                "total_shots": 2,
                "total_pass": 67,
                "accurate_pass": 54,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.5,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 79,
                "possession_lost": 10.8,
                "dispossessed": 1.1,
                "duels_lost": 5,
                "aerial_won": 2,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.093,
                "ball_carries": 40,
                "total_progression": 107,
                "progressive_carries": 10
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.213,
                "expected_goals": 0.137,
                "total_shots": 2,
                "total_pass": 67,
                "accurate_pass": 54,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.5,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 79,
                "possession_lost": 10.8,
                "dispossessed": 1.1,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.093,
                "ball_carries": 40,
                "total_progression": 107,
                "progressive_carries": 10,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.545,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Joshua King",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.545,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 1.8,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 2.0,
                  "after": 1.9
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.213,
                "expected_goals": 0.2526,
                "total_shots": 2,
                "total_pass": 67,
                "accurate_pass": 54,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.5,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 79,
                "possession_lost": 10.8,
                "dispossessed": 1.1,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.093,
                "ball_carries": 40,
                "total_progression": 107,
                "progressive_carries": 10,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.545,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.137,
                  "after": 0.2526
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 5, fifa_overall 80.0)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.213,
                "expected_goals": 0.2526,
                "total_shots": 2,
                "total_pass": 67,
                "accurate_pass": 54,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.5,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 79,
                "possession_lost": 10.8,
                "dispossessed": 1.1,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.093,
                "ball_carries": 40,
                "total_progression": 107,
                "progressive_carries": 10,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.545,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1907,
                "fifa_rank": 700.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.213,
                "expected_goals": 0.2526,
                "total_shots": 2,
                "total_pass": 67,
                "accurate_pass": 54,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.5,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 79,
                "possession_lost": 10.8,
                "dispossessed": 1.1,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.093,
                "ball_carries": 40,
                "total_progression": 107,
                "progressive_carries": 10,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.545,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.187,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.187,
                "scorer_weight": 1.6153,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0667,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 2,
                "assists": 1,
                "expected_assists": 0.213,
                "expected_goals": 0.2526,
                "total_shots": 2,
                "total_pass": 67,
                "accurate_pass": 54,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.5,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 22,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 79,
                "possession_lost": 10.8,
                "dispossessed": 1.1,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.093,
                "ball_carries": 40,
                "total_progression": 107,
                "progressive_carries": 10,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.545,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.187,
                "projected_assists": 1,
                "assist_probability": 0.2496,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 1,
                "assist_probability": 0.2496,
                "provider_weight": 2.9196,
                "squad_weight_total": 11.6952,
                "weight_share": 0.2496,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Amad Diallo": {
          "player_id": 971037,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 16,
          "height": 173,
          "market_value": 44000000,
          "stats": {
            "key_pass": 2,
            "assists": 0,
            "expected_assists": 0.206,
            "expected_goals": 0.2434,
            "total_shots": 2,
            "total_pass": 65,
            "accurate_pass": 53,
            "ball_recovery": 7,
            "duels_won": 8,
            "rating": 7.4,
            "minutes": 90,
            "total_long_balls": 6,
            "accurate_long_balls": 3,
            "total_own_half_passes": 26,
            "accurate_own_half_passes": 21,
            "total_opp_half_passes": 26,
            "accurate_opp_half_passes": 20,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 78,
            "possession_lost": 10.6,
            "dispossessed": 1.0,
            "duels_lost": 5,
            "aerial_won": 1,
            "aerial_lost": 1,
            "interceptions": 2,
            "tackles_won": 2,
            "tackles": 3,
            "clearances": 1,
            "total_contest": 5,
            "won_contest": 3,
            "challenges_lost": 2,
            "fouls": 2,
            "fouls_drawn": 2,
            "goal_rate": 0.1,
            "goals": 0,
            "shots_on_target": 1,
            "shots_off_target": 1,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.09,
            "ball_carries": 39,
            "total_progression": 104,
            "progressive_carries": 9,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.3,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.505,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Joshua King",
            "opponent_faced": "Joshua King",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.1832,
            "projected_assists": 0,
            "assist_probability": 0.2455,
            "fifa_overall": 80.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 1014,
            "combined_rank_score": 573.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 449.0,
            "sofascore_rating": 6.8937,
            "sofascore_appearances": 32.0,
            "fifa_rank": 698.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "projected_match_rating": 7.4,
            "source_file": "data/player_rankings.csv",
            "player_name": "Amad Diallo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nicolás González",
                  "ranking": 1009
                },
                {
                  "player_name": "Alejandro Francés",
                  "ranking": 1010
                },
                {
                  "player_name": "Mohammed Kudus",
                  "ranking": 1011
                },
                {
                  "player_name": "Nicolas Seiwald",
                  "ranking": 1012
                },
                {
                  "player_name": "Mateus Fernandes",
                  "ranking": 1013
                }
              ],
              "lower": [
                {
                  "player_name": "Dani Parejo",
                  "ranking": 1015
                },
                {
                  "player_name": "Giovanni Di Lorenzo",
                  "ranking": 1016
                },
                {
                  "player_name": "Min-hyeok Kim",
                  "ranking": 1017
                },
                {
                  "player_name": "Tim Hartzell",
                  "ranking": 1018
                },
                {
                  "player_name": "Dae-kwang Lee",
                  "ranking": 1019
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "M_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "market_value_adjustment": 0.8002,
            "fbref_prior_metrics": null,
            "rationale": "Market-value baseline (€44,000,000) applied for position M (quality factor 0.80)."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position M (quality 0.80)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.206,
                "expected_goals": 0.132,
                "total_shots": 2,
                "total_pass": 65,
                "accurate_pass": 53,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.4,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 78,
                "possession_lost": 10.6,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 2,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.09,
                "ball_carries": 39,
                "total_progression": 104,
                "progressive_carries": 9
              },
              "params": {
                "market_value_eur": 44000000,
                "quality_factor": 0.8002
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.206,
                "expected_goals": 0.132,
                "total_shots": 2,
                "total_pass": 65,
                "accurate_pass": 53,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.4,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 78,
                "possession_lost": 10.6,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 2,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.09,
                "ball_carries": 39,
                "total_progression": 104,
                "progressive_carries": 9
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.206,
                "expected_goals": 0.132,
                "total_shots": 2,
                "total_pass": 65,
                "accurate_pass": 53,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.4,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 78,
                "possession_lost": 10.6,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.09,
                "ball_carries": 39,
                "total_progression": 104,
                "progressive_carries": 9,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.505,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Joshua King",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.505,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 1.7,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 1.9,
                  "after": 1.8
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.206,
                "expected_goals": 0.2434,
                "total_shots": 2,
                "total_pass": 65,
                "accurate_pass": 53,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.4,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 78,
                "possession_lost": 10.6,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.09,
                "ball_carries": 39,
                "total_progression": 104,
                "progressive_carries": 9,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.505,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.132,
                  "after": 0.2434
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 8, fifa_overall 80.0)",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.206,
                "expected_goals": 0.2434,
                "total_shots": 2,
                "total_pass": 65,
                "accurate_pass": 53,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.4,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 78,
                "possession_lost": 10.6,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.09,
                "ball_carries": 39,
                "total_progression": 104,
                "progressive_carries": 9,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.505,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1014,
                "fifa_rank": 698.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.206,
                "expected_goals": 0.2434,
                "total_shots": 2,
                "total_pass": 65,
                "accurate_pass": 53,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.4,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 78,
                "possession_lost": 10.6,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.09,
                "ball_carries": 39,
                "total_progression": 104,
                "progressive_carries": 9,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.505,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1832,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.1832,
                "scorer_weight": 1.5803,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0652,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 2,
                "assists": 0,
                "expected_assists": 0.206,
                "expected_goals": 0.2434,
                "total_shots": 2,
                "total_pass": 65,
                "accurate_pass": 53,
                "ball_recovery": 7,
                "duels_won": 8,
                "rating": 7.4,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 26,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 78,
                "possession_lost": 10.6,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 1,
                "aerial_lost": 1,
                "interceptions": 2,
                "tackles_won": 2,
                "tackles": 3,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "goal_rate": 0.1,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.09,
                "ball_carries": 39,
                "total_progression": 104,
                "progressive_carries": 9,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.505,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Joshua King",
                "opponent_faced": "Joshua King",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.1832,
                "projected_assists": 0,
                "assist_probability": 0.2455,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.2455,
                "provider_weight": 2.8708,
                "squad_weight_total": 11.6952,
                "weight_share": 0.2455,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Youri Tielemans": {
          "player_id": 331737,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 18,
          "height": 177,
          "market_value": 43000000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0992,
            "assists": 0,
            "expected_goals": 0.1468,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 7.87,
            "minutes": 90,
            "total_pass": 82,
            "accurate_pass": 74,
            "duels_won": 4,
            "total_long_balls": 4,
            "accurate_long_balls": 2,
            "total_own_half_passes": 33,
            "accurate_own_half_passes": 30,
            "total_opp_half_passes": 49,
            "accurate_opp_half_passes": 44,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 95,
            "possession_lost": 9.7983,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 0,
            "challenges_lost": 2,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 26,
            "total_progression": 69,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.8,
            "crosses_attempted": 2.9,
            "duel_win_rate": 0.473,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "RWB vs LWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Kevin",
            "opponent_faced": "Kevin",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.08,
            "projected_assists": 0,
            "assist_probability": 0.1357,
            "fifa_overall": 85.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0473,
                "expected_assists": 0.0613,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 81,
                "accurate_pass": 74,
                "key_pass": 1,
                "interceptions": 1,
                "duels_won": 1,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "assists": 0,
                "expected_goals": 0.4705,
                "expected_assists": 0.1058,
                "total_shots": 3,
                "shots_on_target": 2,
                "total_pass": 72,
                "accurate_pass": 66,
                "key_pass": 4,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 67,
                "rating": 6.7,
                "assists": 0,
                "expected_goals": 0.0366,
                "expected_assists": 0.107,
                "total_shots": 1,
                "total_pass": 73,
                "accurate_pass": 65,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 76,
            "combined_rank_score": 84.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 30.0,
            "sofascore_rating": 8.0,
            "sofascore_appearances": 6.0,
            "fifa_rank": 138.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "projected_match_rating": 7.87,
            "source_file": "data/player_rankings.csv",
            "player_name": "Youri Tielemans",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Granit Xhaka",
                  "ranking": 71
                },
                {
                  "player_name": "Kevin De Bruyne",
                  "ranking": 72
                },
                {
                  "player_name": "Silva Denisson",
                  "ranking": 73
                },
                {
                  "player_name": "Désiré Doué",
                  "ranking": 74
                },
                {
                  "player_name": "Chema Andrés",
                  "ranking": 75
                }
              ],
              "lower": [
                {
                  "player_name": "Marc Cucurella",
                  "ranking": 77
                },
                {
                  "player_name": "Dominik Szoboszlai",
                  "ranking": 78
                },
                {
                  "player_name": "Thibaut Courtois",
                  "ranking": 79
                },
                {
                  "player_name": "Otávio Costa",
                  "ranking": 80
                },
                {
                  "player_name": "Marc Guéhi",
                  "ranking": 81
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0887,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 3 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0911,
                "assists": 0,
                "expected_goals": 0.0731,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.2288,
                "minutes": 82,
                "total_pass": 75,
                "accurate_pass": 68,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 30,
                "accurate_own_half_passes": 28,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 41,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 88,
                "possession_lost": 9.0,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 63,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "totalShots": 2.0496,
                  "ballRecovery_p90": 6.1429,
                  "progressiveBallCarriesCount": 1.0,
                  "expectedAssists": 0.0888,
                  "ballRecovery": 5.6608
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.0838961601257324,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0499
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0466
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0357
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0334
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0243
                        }
                      ],
                      "others": -0.0083,
                      "total": 1.0839
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.09107410907745361,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0129
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0094
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0048
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0042
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0038
                        }
                      ],
                      "others": -0.0027,
                      "total": 0.0911
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08655937761068344,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0053
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": 0.0055
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.005
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": -0.0047
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0044
                        }
                      ],
                      "others": -0.0145,
                      "total": 0.0866
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.07313545048236847,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0249
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0198
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.01
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0067
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0052
                        }
                      ],
                      "others": -0.0188,
                      "total": 0.0731
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.3976663053035736,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0638
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0364
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0171
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0128
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0107
                        }
                      ],
                      "others": -0.0027,
                      "total": 0.3977
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.092022180557251,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2785
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0655
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0641
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0524
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0436
                        }
                      ],
                      "others": -0.1475,
                      "total": 1.092
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.228787422180176,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": 0.1443
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0815
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0613
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0359
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0249
                        }
                      ],
                      "others": 0.1209,
                      "total": 7.2288
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0887, quality 0.796)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0992,
                "assists": 0,
                "expected_goals": 0.0796,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.87,
                "minutes": 90,
                "total_pass": 82,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 49,
                "accurate_opp_half_passes": 44,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 9.7983,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 69,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 43000000,
                "quality_factor": 0.7957,
                "boost_factor": 1.0887
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0992,
                "assists": 0,
                "expected_goals": 0.0796,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.87,
                "minutes": 90,
                "total_pass": 82,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 49,
                "accurate_opp_half_passes": 44,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 9.7983,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 69,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0992,
                "assists": 0,
                "expected_goals": 0.0796,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.87,
                "minutes": 90,
                "total_pass": 82,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 49,
                "accurate_opp_half_passes": 44,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 9.7983,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 69,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.9,
                "duel_win_rate": 0.473,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin",
                "opponent_faced": "Kevin",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Kevin",
                  "matchup_zone": "RWB vs LWB",
                  "duel_win_rate": 0.473,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1"
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0992,
                "assists": 0,
                "expected_goals": 0.1468,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.87,
                "minutes": 90,
                "total_pass": 82,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 49,
                "accurate_opp_half_passes": 44,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 9.7983,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 69,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.9,
                "duel_win_rate": 0.473,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin",
                "opponent_faced": "Kevin",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0796,
                  "after": 0.1468
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 9, fifa_overall 85.0)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0992,
                "assists": 0,
                "expected_goals": 0.1468,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.87,
                "minutes": 90,
                "total_pass": 82,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 49,
                "accurate_opp_half_passes": 44,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 9.7983,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 69,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.9,
                "duel_win_rate": 0.473,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin",
                "opponent_faced": "Kevin",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 85.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 76,
                "fifa_rank": 138.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 85.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0992,
                "assists": 0,
                "expected_goals": 0.1468,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.87,
                "minutes": 90,
                "total_pass": 82,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 49,
                "accurate_opp_half_passes": 44,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 9.7983,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 69,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.9,
                "duel_win_rate": 0.473,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin",
                "opponent_faced": "Kevin",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.08,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.08,
                "scorer_weight": 0.6638,
                "squad_weight_total": 24.2306,
                "weight_share": 0.0274,
                "position_multiplier": 0.78
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0992,
                "assists": 0,
                "expected_goals": 0.1468,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.87,
                "minutes": 90,
                "total_pass": 82,
                "accurate_pass": 74,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 2,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 30,
                "total_opp_half_passes": 49,
                "accurate_opp_half_passes": 44,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 95,
                "possession_lost": 9.7983,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 0,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 69,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.8,
                "crosses_attempted": 2.9,
                "duel_win_rate": 0.473,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Kevin",
                "opponent_faced": "Kevin",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.08,
                "projected_assists": 0,
                "assist_probability": 0.1357,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.1357,
                "provider_weight": 1.5866,
                "squad_weight_total": 11.6952,
                "weight_share": 0.1357,
                "position_multiplier": 1.45
              }
            }
          ]
        },
        "Matheus Cunha": {
          "player_id": 886363,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 10,
          "height": 184,
          "market_value": 79000000,
          "stats": {
            "expected_goals": 0.6089,
            "goal_rate": 0.3077,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 3,
            "expected_assists": 0.0646,
            "key_pass": 1,
            "rating": 7.4672,
            "minutes": 85,
            "total_pass": 29,
            "accurate_pass": 25,
            "duels_won": 2,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 17,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 44,
            "possession_lost": 10.3967,
            "dispossessed": 1.4821,
            "duels_lost": 6,
            "aerial_lost": 2,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 13,
            "total_progression": 57,
            "progressive_carries": 3,
            "shots_off_target": 1,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.4,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.523,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "numerical_situation": "1v1",
            "opponent_defenders": "Calvin Bassey",
            "opponent_faced": "Calvin Bassey",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.5497,
            "projected_assists": 0,
            "assist_probability": 0.0675,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 70,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.1178,
                "expected_assists": 0.054,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 28,
                "accurate_pass": 22,
                "tackles": 2,
                "tackles_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 80,
                "rating": 7.0,
                "assists": 1,
                "expected_goals": 0.106,
                "expected_assists": 0.1515,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 21,
                "accurate_pass": 19,
                "key_pass": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 80,
                "rating": 5.8,
                "assists": 0,
                "expected_goals": 0.2431,
                "expected_assists": 0.2127,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 28,
                "accurate_pass": 27,
                "key_pass": 2,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 356,
            "combined_rank_score": 231.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 261.0,
            "sofascore_rating": 7.0909,
            "sofascore_appearances": 33.0,
            "fifa_rank": 201.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "projected_match_rating": 7.4672,
            "source_file": "data/player_rankings.csv",
            "player_name": "Matheus Cunha",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jorginho",
                  "ranking": 351
                },
                {
                  "player_name": "Renê",
                  "ranking": 352
                },
                {
                  "player_name": "Azizbek Amanov",
                  "ranking": 353
                },
                {
                  "player_name": "Aboubacar Toungara",
                  "ranking": 354
                },
                {
                  "player_name": "Sharof Mukhiddinov",
                  "ranking": 355
                }
              ],
              "lower": [
                {
                  "player_name": "Antoine Semenyo",
                  "ranking": 357
                },
                {
                  "player_name": "Cho Sang-Jun",
                  "ranking": 358
                },
                {
                  "player_name": "Cristiano Ronaldo",
                  "ranking": 359
                },
                {
                  "player_name": "Riccardo Calafiori",
                  "ranking": 360
                },
                {
                  "player_name": "Patrik Schick",
                  "ranking": 361
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1143,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 3 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.258,
                "goal_rate": 0.2761,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.058,
                "key_pass": 1,
                "rating": 6.7011,
                "minutes": 77,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 9.33,
                "dispossessed": 1.33,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 12,
                "total_progression": 51,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:14.946589+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 70.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 5.8
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "minutesPlayed": 76.1127,
                  "totalShots": 2.2809,
                  "onTargetScoringAttempt": 0.6113,
                  "touches": 39.2575,
                  "dribbleValueNormalized": 0.1929
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.25797173380851746,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0444
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0365
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0278
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0198
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0123
                        }
                      ],
                      "others": -0.0213,
                      "total": 0.258
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2761218547821045,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0483
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0342
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0331
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0312
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.027
                        }
                      ],
                      "others": 0.0382,
                      "total": 0.2761
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6374675631523132,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0466
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0339
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0168
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0165
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0139
                        }
                      ],
                      "others": 0.0031,
                      "total": 0.6375
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.9276432991027832,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0896
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.062
                      },
                      {
                        "name": "shotOffTarget",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0517
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0408
                      }
                    ],
                    "decomposition": {
                      "base": 1.531,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.2984
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1455
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.1359
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0557
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0509
                        }
                      ],
                      "others": 0.0838,
                      "total": 1.9276
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05800910294055939,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "accuratePass",
                          "contribution": 0.013
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0081
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0068
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0055
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0038
                        }
                      ],
                      "others": -0.0023,
                      "total": 0.058
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7066214680671692,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.135
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0656
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.034
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0276
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0234
                        }
                      ],
                      "others": -0.0287,
                      "total": 0.7066
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.701054573059082,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0744
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0601
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0484
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0356
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0277
                        }
                      ],
                      "others": 0.0137,
                      "total": 6.7011
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1143, quality 0.881)",
              "stats": {
                "expected_goals": 0.2875,
                "goal_rate": 0.3077,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0646,
                "key_pass": 1,
                "rating": 7.4672,
                "minutes": 85,
                "total_pass": 29,
                "accurate_pass": 25,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 10.3967,
                "dispossessed": 1.4821,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 79000000,
                "quality_factor": 0.8811,
                "boost_factor": 1.1143
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2875,
                "goal_rate": 0.3077,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0646,
                "key_pass": 1,
                "rating": 7.4672,
                "minutes": 85,
                "total_pass": 29,
                "accurate_pass": 25,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 10.3967,
                "dispossessed": 1.4821,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.3303,
                "goal_rate": 0.3077,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0646,
                "key_pass": 1,
                "rating": 7.4672,
                "minutes": 85,
                "total_pass": 29,
                "accurate_pass": 25,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 10.3967,
                "dispossessed": 1.4821,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.523,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Calvin Bassey",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                  "duel_win_rate": 0.523,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1",
                  "xg_override": 0.3303
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.1481,
                  "after": 2.7
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2875,
                  "after": 0.3303
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "expected_goals": 0.6089,
                "goal_rate": 0.3077,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0646,
                "key_pass": 1,
                "rating": 7.4672,
                "minutes": 85,
                "total_pass": 29,
                "accurate_pass": 25,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 10.3967,
                "dispossessed": 1.4821,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.523,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.3303,
                  "after": 0.6089
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 1, fifa_overall 84.0)",
              "stats": {
                "expected_goals": 0.6089,
                "goal_rate": 0.3077,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0646,
                "key_pass": 1,
                "rating": 7.4672,
                "minutes": 85,
                "total_pass": 29,
                "accurate_pass": 25,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 10.3967,
                "dispossessed": 1.4821,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.523,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 84.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 356,
                "fifa_rank": 201.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.6089,
                "goal_rate": 0.3077,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0646,
                "key_pass": 1,
                "rating": 7.4672,
                "minutes": 85,
                "total_pass": 29,
                "accurate_pass": 25,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 10.3967,
                "dispossessed": 1.4821,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.523,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.5497,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.5497,
                "scorer_weight": 5.6585,
                "squad_weight_total": 24.2306,
                "weight_share": 0.2335,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.6089,
                "goal_rate": 0.3077,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0646,
                "key_pass": 1,
                "rating": 7.4672,
                "minutes": 85,
                "total_pass": 29,
                "accurate_pass": 25,
                "duels_won": 2,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 10.3967,
                "dispossessed": 1.4821,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 57,
                "progressive_carries": 3,
                "shots_off_target": 1,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.4,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.523,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.5497,
                "projected_assists": 0,
                "assist_probability": 0.0675,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0675,
                "provider_weight": 0.7897,
                "squad_weight_total": 11.6952,
                "weight_share": 0.0675,
                "position_multiplier": 0.85
              }
            }
          ]
        },
        "Benjamin Šeško": {
          "player_id": 986397,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 30,
          "height": 195,
          "market_value": 78000000,
          "stats": {
            "expected_goals": 0.3748,
            "goal_rate": 0.3695,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 3,
            "expected_assists": 0.0297,
            "key_pass": 1,
            "rating": 7.7325,
            "minutes": 20,
            "total_pass": 6,
            "accurate_pass": 4,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 8,
            "possession_lost": 2.9745,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 3,
            "total_progression": 13,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.6,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.33,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Calvin Bassey, Antonee Robinson",
            "opponent_faced": "Calvin Bassey, Antonee Robinson",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.4684,
            "projected_assists": 0,
            "assist_probability": 0.0563,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 20,
                "rating": 7.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.287,
                "expected_assists": 0.001,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 5,
                "accurate_pass": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 10,
                "rating": 6.5,
                "assists": 0,
                "expected_assists": 0.0053,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 5,
                "key_pass": 1,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 23,
                "rating": 6.2,
                "assists": 0,
                "expected_goals": 0.0357,
                "expected_assists": 0.0025,
                "total_shots": 1,
                "total_pass": 3,
                "accurate_pass": 3,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1116,
            "combined_rank_score": 499.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 613.0,
            "sofascore_rating": 6.775,
            "sofascore_appearances": 4.0,
            "fifa_rank": 386.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "projected_match_rating": 7.7325,
            "source_file": "data/player_rankings.csv",
            "player_name": "Benjamin Šeško",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Arihiro Sentoku",
                  "ranking": 1111
                },
                {
                  "player_name": "Leonel González",
                  "ranking": 1112
                },
                {
                  "player_name": "Veldin Hodža",
                  "ranking": 1113
                },
                {
                  "player_name": "Breno Bidon",
                  "ranking": 1114
                },
                {
                  "player_name": "Antonio Gutemberg",
                  "ranking": 1115
                }
              ],
              "lower": [
                {
                  "player_name": "Kim Jeong Hyun",
                  "ranking": 1117
                },
                {
                  "player_name": "Jaba Jigauri",
                  "ranking": 1118
                },
                {
                  "player_name": "Benjamin Opeyemi Teidi",
                  "ranking": 1119
                },
                {
                  "player_name": "Tornike Dzebniauri",
                  "ranking": 1120
                },
                {
                  "player_name": "Ho-in Lee",
                  "ranking": 1121
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.114,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 3 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2109,
                "goal_rate": 0.3317,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0266,
                "key_pass": 1,
                "rating": 6.9409,
                "minutes": 18,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 2.67,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 11,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:14.946589+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 23.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "minutesPlayed": 17.5384,
                  "totalShots": 1.0583,
                  "onTargetScoringAttempt": 0.3887,
                  "touches": 7.38,
                  "dribbleValueNormalized": -0.0225
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.21094216406345367,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0588
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0335
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0283
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0185
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0125
                        }
                      ],
                      "others": -0.0368,
                      "total": 0.2109
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.33166739344596863,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0431
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.0367
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0361
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0348
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0296
                        }
                      ],
                      "others": 0.0209,
                      "total": 0.3317
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7235199213027954,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0693
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0621
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0372
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0304
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0273
                        }
                      ],
                      "others": -0.0067,
                      "total": 0.7235
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.7223358154296875,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0896
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.062
                      },
                      {
                        "name": "shotOffTarget",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0517
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0408
                      }
                    ],
                    "decomposition": {
                      "base": 1.531,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.301
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1379
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0945
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0778
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0665
                        }
                      ],
                      "others": -0.2106,
                      "total": 1.7223
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.02664053998887539,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0089
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.006
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0043
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0038
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0027
                        }
                      ],
                      "others": -0.0056,
                      "total": 0.0266
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7239416241645813,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.2068
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0795
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0625
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0542
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0457
                        }
                      ],
                      "others": -0.1237,
                      "total": 0.7239
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.940882682800293,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0491
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0427
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0409
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0367
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0256
                        }
                      ],
                      "others": 0.1177,
                      "total": 6.9409
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1140, quality 0.880)",
              "stats": {
                "expected_goals": 0.235,
                "goal_rate": 0.3695,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 20,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.9745,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 78000000,
                "quality_factor": 0.8802,
                "boost_factor": 1.114
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.235,
                "goal_rate": 0.3695,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 20,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.9745,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.2033,
                "goal_rate": 0.3695,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 20,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.9745,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.33,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Calvin Bassey, Antonee Robinson",
                "opponent_faced": "Calvin Bassey, Antonee Robinson",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Calvin Bassey, Antonee Robinson",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.33,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v2",
                  "xg_override": 0.2033
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.9188,
                  "after": 2.6
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.235,
                  "after": 0.2033
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "expected_goals": 0.3748,
                "goal_rate": 0.3695,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 20,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.9745,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.33,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Calvin Bassey, Antonee Robinson",
                "opponent_faced": "Calvin Bassey, Antonee Robinson",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2033,
                  "after": 0.3748
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 2, fifa_overall 82.0)",
              "stats": {
                "expected_goals": 0.3748,
                "goal_rate": 0.3695,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 20,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.9745,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.33,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Calvin Bassey, Antonee Robinson",
                "opponent_faced": "Calvin Bassey, Antonee Robinson",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1116,
                "fifa_rank": 386.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.3748,
                "goal_rate": 0.3695,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 20,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.9745,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.33,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Calvin Bassey, Antonee Robinson",
                "opponent_faced": "Calvin Bassey, Antonee Robinson",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.4684,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.4684,
                "scorer_weight": 4.6014,
                "squad_weight_total": 24.2306,
                "weight_share": 0.1899,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.3748,
                "goal_rate": 0.3695,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0297,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 20,
                "total_pass": 6,
                "accurate_pass": 4,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 8,
                "possession_lost": 2.9745,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 3,
                "total_progression": 13,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.33,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Calvin Bassey, Antonee Robinson",
                "opponent_faced": "Calvin Bassey, Antonee Robinson",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.4684,
                "projected_assists": 0,
                "assist_probability": 0.0563,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0563,
                "provider_weight": 0.659,
                "squad_weight_total": 11.6952,
                "weight_share": 0.0563,
                "position_multiplier": 0.85
              }
            }
          ]
        },
        "Bryan Mbeumo": {
          "player_id": 927083,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 19,
          "height": 173,
          "market_value": 73000000,
          "stats": {
            "expected_goals": 0.778,
            "goal_rate": 0.3595,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 3,
            "expected_assists": 0.1017,
            "key_pass": 1,
            "rating": 7.7325,
            "minutes": 95,
            "total_pass": 34,
            "accurate_pass": 30,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 28,
            "accurate_opp_half_passes": 25,
            "crosses_total": 6,
            "crosses_accurate": 0,
            "touches": 54,
            "possession_lost": 13.7159,
            "dispossessed": 0.0,
            "duels_lost": 7,
            "aerial_lost": 3,
            "total_contest": 2,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.6341,
            "offsides": 0,
            "ball_carries": 17,
            "total_progression": 82,
            "progressive_carries": 4,
            "shots_off_target": 2,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.3,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.476,
            "pressing_faced": "MEDIUM",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "numerical_situation": "1v1",
            "opponent_defenders": "Calvin Bassey",
            "opponent_faced": "Calvin Bassey",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.6983,
            "projected_assists": 0,
            "assist_probability": 0.0781,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 0.0502,
                "expected_assists": 0.0346,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 23,
                "accurate_pass": 20,
                "key_pass": 1,
                "interceptions": 3,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assists": 0,
                "expected_goals": 1.758,
                "expected_assists": 0.2115,
                "total_shots": 5,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 25,
                "accurate_pass": 23,
                "key_pass": 3,
                "tackles": 3,
                "tackles_won": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assists": 0,
                "expected_goals": 0.4969,
                "expected_assists": 0.2278,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 44,
                "accurate_pass": 38,
                "key_pass": 1,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 318,
            "combined_rank_score": 216.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 229.0,
            "sofascore_rating": 7.15,
            "sofascore_appearances": 2.0,
            "fifa_rank": 203.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "projected_match_rating": 7.7325,
            "source_file": "data/player_rankings.csv",
            "player_name": "Bryan Mbeumo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Morgan Gibbs-White",
                  "ranking": 313
                },
                {
                  "player_name": "Bojan Ciger",
                  "ranking": 314
                },
                {
                  "player_name": "Juan Musso",
                  "ranking": 315
                },
                {
                  "player_name": "Ju-kong Kim",
                  "ranking": 316
                },
                {
                  "player_name": "Jae-yong Bak",
                  "ranking": 317
                }
              ],
              "lower": [
                {
                  "player_name": "Sandzhar Kuvvatov",
                  "ranking": 319
                },
                {
                  "player_name": "Jon Ander Olasagasti",
                  "ranking": 320
                },
                {
                  "player_name": "Mario Rivas",
                  "ranking": 321
                },
                {
                  "player_name": "Nico Paz",
                  "ranking": 322
                },
                {
                  "player_name": "Unai Simón",
                  "ranking": 323
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1124,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 3 historical appearances across 7 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.3514,
                "goal_rate": 0.3232,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0915,
                "key_pass": 1,
                "rating": 6.9512,
                "minutes": 90,
                "total_pass": 31,
                "accurate_pass": 27,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 22,
                "crosses_total": 5,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 12.33,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.57,
                "offsides": 0,
                "ball_carries": 16,
                "total_progression": 74,
                "progressive_carries": 4,
                "shots_off_target": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:14.946589+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 1.0,
                  "minutesPlayed": 90.0,
                  "totalShots": 3.553,
                  "onTargetScoringAttempt": 1.2809,
                  "touches": 47.3431,
                  "dribbleValueNormalized": 0.3988
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.35135650634765625,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0624
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0416
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0395
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0212
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.018
                        }
                      ],
                      "others": 0.0144,
                      "total": 0.3514
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.32316598296165466,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0666
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0462
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0274
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0169
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.017
                        }
                      ],
                      "others": -0.0084,
                      "total": 0.3232
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7994377017021179,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0646
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0568
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0412
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0392
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0315
                        }
                      ],
                      "others": 0.0156,
                      "total": 0.7994
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.439251184463501,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0896
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.062
                      },
                      {
                        "name": "shotOffTarget",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0517
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0408
                      }
                    ],
                    "decomposition": {
                      "base": 1.531,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.3891
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1847
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.1204
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0975
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0855
                        }
                      ],
                      "others": 0.0311,
                      "total": 2.4393
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.09145587682723999,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "accuratePass",
                          "contribution": 0.0143
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.013
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0111
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0075
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0067
                        }
                      ],
                      "others": 0.0182,
                      "total": 0.0915
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 1.1300230026245117,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": 0.1576
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1144
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0974
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0361
                        },
                        {
                          "name": "speed_threat",
                          "contribution": -0.036
                        }
                      ],
                      "others": 0.0776,
                      "total": 1.13
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.951200008392334,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0697
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0642
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0546
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": 0.0545
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0487
                        }
                      ],
                      "others": 0.0433,
                      "total": 6.9512
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.1124, quality 0.875)",
              "stats": {
                "expected_goals": 0.3908,
                "goal_rate": 0.3595,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1017,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 95,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 25,
                "crosses_total": 6,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 13.7159,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 3,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.6341,
                "offsides": 0,
                "ball_carries": 17,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 73000000,
                "quality_factor": 0.8747,
                "boost_factor": 1.1124
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.3908,
                "goal_rate": 0.3595,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1017,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 95,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 25,
                "crosses_total": 6,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 13.7159,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 3,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.6341,
                "offsides": 0,
                "ball_carries": 17,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "enriched_model_output",
              "description": "Model output after duel-context enrichment (pre router post-processing)",
              "stats": {
                "expected_goals": 0.422,
                "goal_rate": 0.3595,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1017,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 95,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 25,
                "crosses_total": 6,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 13.7159,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 3,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.6341,
                "offsides": 0,
                "ball_carries": 17,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.476,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Calvin Bassey",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                  "duel_win_rate": 0.476,
                  "pressing_faced": "MEDIUM",
                  "numerical_situation": "1v1",
                  "xg_override": 0.422
                }
              },
              "changes": [
                {
                  "stat": "expectedGoals",
                  "before": 0.3908,
                  "after": 0.422
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "expected_goals": 0.778,
                "goal_rate": 0.3595,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1017,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 95,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 25,
                "crosses_total": 6,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 13.7159,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 3,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.6341,
                "offsides": 0,
                "ball_carries": 17,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.476,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.422,
                  "after": 0.778
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 3, fifa_overall 84.0)",
              "stats": {
                "expected_goals": 0.778,
                "goal_rate": 0.3595,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1017,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 95,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 25,
                "crosses_total": 6,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 13.7159,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 3,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.6341,
                "offsides": 0,
                "ball_carries": 17,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.476,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 84.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 318,
                "fifa_rank": 203.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight",
              "stats": {
                "expected_goals": 0.778,
                "goal_rate": 0.3595,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1017,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 95,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 25,
                "crosses_total": 6,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 13.7159,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 3,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.6341,
                "offsides": 0,
                "ball_carries": 17,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.476,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.6983,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.6983,
                "scorer_weight": 7.9792,
                "squad_weight_total": 24.2306,
                "weight_share": 0.3293,
                "position_multiplier": 1.45
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 1 projected assists distributed by provider weight",
              "stats": {
                "expected_goals": 0.778,
                "goal_rate": 0.3595,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1017,
                "key_pass": 1,
                "rating": 7.7325,
                "minutes": 95,
                "total_pass": 34,
                "accurate_pass": 30,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 28,
                "accurate_opp_half_passes": 25,
                "crosses_total": 6,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 13.7159,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 3,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.6341,
                "offsides": 0,
                "ball_carries": 17,
                "total_progression": 82,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.3,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.476,
                "pressing_faced": "MEDIUM",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Calvin Bassey",
                "opponent_faced": "Calvin Bassey",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.6983,
                "projected_assists": 0,
                "assist_probability": 0.0781,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 1,
                "assists_allocated": 0,
                "assist_probability": 0.0781,
                "provider_weight": 0.9128,
                "squad_weight_total": 11.6952,
                "weight_share": 0.0781,
                "position_multiplier": 0.85
              }
            }
          ]
        }
      },
      "bench_players": {
        "Karl Darlow": {
          "player_id": 123689,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 12,
          "height": 185,
          "market_value": 210000,
          "stats": {
            "saves": 0,
            "goals_prevented": 0.022,
            "rating": 6.8,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "touches": 2,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0146,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.1171,
            "duels_won": 0,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 1,
            "accurate_own_half_passes": 1,
            "bench_appearance_probability": 0.109,
            "bench_expected_minutes": 4.39,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "available_bench_not_projected_used",
            "goals": 0,
            "projected_goals": 0,
            "goal_probability": 0.0,
            "assists": 0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 76.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3070,
            "combined_rank_score": 1038.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 307.0,
            "sofascore_rating": 7.0364,
            "sofascore_appearances": 22.0,
            "fifa_rank": 1769.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "substitute",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Karl Darlow",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Axel Disasi",
                  "ranking": 3065
                },
                {
                  "player_name": "Konstantinos Karetsas",
                  "ranking": 3066
                },
                {
                  "player_name": "İlkay Gündoğan",
                  "ranking": 3067
                },
                {
                  "player_name": "Amine Adli",
                  "ranking": 3068
                },
                {
                  "player_name": "Arnaud Kalimuendo",
                  "ranking": 3069
                }
              ],
              "lower": [
                {
                  "player_name": "Habib Diarra",
                  "ranking": 3071
                },
                {
                  "player_name": "Jaidon Anthony",
                  "ranking": 3072
                },
                {
                  "player_name": "Alex Arce",
                  "ranking": 3073
                },
                {
                  "player_name": "Matías Dituro",
                  "ranking": 3074
                },
                {
                  "player_name": "Liam Delap",
                  "ranking": 3075
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "G_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 4.392222187561249,
            "bench_appearance_prob": 0.10873737216187492,
            "market_value_adjustment": 0.4374,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€210,000) scaled to 4.4 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position G (quality 0.44)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.45,
                "rating": 6.8,
                "minutes": 90,
                "total_pass": 27,
                "accurate_pass": 20,
                "total_long_balls": 8,
                "accurate_long_balls": 4,
                "touches": 32,
                "clearances": 1,
                "ball_recovery": 1,
                "high_claims": 0,
                "punches": 0.3,
                "aerial_won": 1,
                "sweeper_actions": 1,
                "sweeper_accurate": 1,
                "saves_inside_box": 1,
                "possession_lost": 2.4,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 16
              },
              "params": {
                "market_value_eur": 210000,
                "quality_factor": 0.4374
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "expected_minutes": 4.39,
                "appearance_probability": 0.109
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 18, fifa_overall 76.0)",
              "stats": {
                "saves": 0,
                "goals_prevented": 0.022,
                "rating": 6.8,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 2,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0146,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.1171,
                "duels_won": 0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 1,
                "accurate_own_half_passes": 1,
                "bench_appearance_probability": 0.109,
                "bench_expected_minutes": 4.39,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "available_bench_not_projected_used",
                "goals": 0,
                "projected_goals": 0,
                "goal_probability": 0.0,
                "assists": 0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3070,
                "fifa_rank": 1769.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 76.0
              }
            }
          ]
        },
        "Matthijs de Ligt": {
          "player_id": 803031,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 4,
          "height": 188,
          "market_value": 32000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 1,
            "aerial_won": 0,
            "duels_won": 1,
            "total_pass": 8,
            "accurate_pass": 7,
            "expected_goals": 0.0038,
            "rating": 7.2,
            "minutes": 15,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 5,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 11,
            "possession_lost": 1.261,
            "dispossessed": 0.6,
            "duels_lost": 1,
            "aerial_lost": 2,
            "total_contest": 1,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_assists": 0.0113,
            "total_shots": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0029,
            "key_pass": 0,
            "ball_carries": 4,
            "total_progression": 12,
            "progressive_carries": 1,
            "bench_appearance_probability": 0.352,
            "bench_expected_minutes": 14.74,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 82.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 302,
            "combined_rank_score": 209.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 44.0,
            "sofascore_rating": 7.8,
            "sofascore_appearances": 2.0,
            "fifa_rank": 374.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "projected_match_rating": 7.2,
            "source_file": "data/player_rankings.csv",
            "player_name": "Matthijs de Ligt",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Christian Pulišić",
                  "ranking": 297
                },
                {
                  "player_name": "Zubimendi",
                  "ranking": 298
                },
                {
                  "player_name": "Kim Min-Seung",
                  "ranking": 299
                },
                {
                  "player_name": "Aurélien Tchouaméni",
                  "ranking": 300
                },
                {
                  "player_name": "Robert Lewandowski",
                  "ranking": 301
                }
              ],
              "lower": [
                {
                  "player_name": "Rodrygo",
                  "ranking": 303
                },
                {
                  "player_name": "Aleksandar Šušnjar",
                  "ranking": 304
                },
                {
                  "player_name": "Brian Fariñas",
                  "ranking": 305
                },
                {
                  "player_name": "Serge Gnabry",
                  "ranking": 306
                },
                {
                  "player_name": "Kyu-baek Choi",
                  "ranking": 307
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "D_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 14.738792805130341,
            "bench_appearance_prob": 0.35176330932410643,
            "market_value_adjustment": 0.732,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€32,000,000) scaled to 14.7 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position D (quality 0.73)",
              "stats": {
                "interceptions": 2,
                "tackles": 3,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 3,
                "duels_won": 7,
                "total_pass": 51,
                "accurate_pass": 41,
                "expected_goals": 0.023,
                "rating": 7.2,
                "minutes": 90,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 33,
                "accurate_own_half_passes": 26,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 9,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 67,
                "possession_lost": 7.7,
                "dispossessed": 0.6,
                "duels_lost": 4,
                "aerial_lost": 2,
                "total_contest": 5,
                "won_contest": 3,
                "ball_recovery": 6,
                "challenges_lost": 1,
                "fouls": 1,
                "fouls_drawn": 1,
                "blocks": 1,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.069,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.018,
                "key_pass": 1,
                "ball_carries": 25,
                "total_progression": 74,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 32000000,
                "quality_factor": 0.732
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 14.7 expected minutes (appearance prob 0.35)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 1,
                "total_pass": 8,
                "accurate_pass": 7,
                "expected_goals": 0.0038,
                "rating": 7.2,
                "minutes": 15,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.261,
                "dispossessed": 0.6,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.0113,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0029,
                "key_pass": 0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.352,
                "bench_expected_minutes": 14.74
              },
              "params": {
                "expected_minutes": 14.74,
                "appearance_probability": 0.352
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 1,
                "total_pass": 8,
                "accurate_pass": 7,
                "expected_goals": 0.0038,
                "rating": 7.2,
                "minutes": 15,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.261,
                "dispossessed": 0.6,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.0113,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0029,
                "key_pass": 0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.352,
                "bench_expected_minutes": 14.74
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 14, fifa_overall 82.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 1,
                "aerial_won": 0,
                "duels_won": 1,
                "total_pass": 8,
                "accurate_pass": 7,
                "expected_goals": 0.0038,
                "rating": 7.2,
                "minutes": 15,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 5,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "possession_lost": 1.261,
                "dispossessed": 0.6,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_assists": 0.0113,
                "total_shots": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0029,
                "key_pass": 0,
                "ball_carries": 4,
                "total_progression": 12,
                "progressive_carries": 1,
                "bench_appearance_probability": 0.352,
                "bench_expected_minutes": 14.74,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 302,
                "fifa_rank": 374.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            }
          ]
        },
        "Diogo Dalot": {
          "player_id": 843200,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 184,
          "market_value": 28000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.9543,
            "minutes": 15,
            "total_pass": 4,
            "accurate_pass": 4,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 3,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 7,
            "possession_lost": 0.8615,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0086,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.346,
            "bench_expected_minutes": 14.62,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 84,
                "rating": 6.0,
                "assists": 0,
                "expected_goals": 0.0101,
                "expected_assists": 0.0149,
                "total_shots": 1,
                "total_pass": 36,
                "accurate_pass": 33,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 74,
                "rating": 6.8,
                "assists": 0,
                "expected_goals": 0.152,
                "expected_assists": 0.1158,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 29,
                "accurate_pass": 26,
                "key_pass": 3,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 10,
                "rating": 6.8,
                "assists": 0,
                "expected_assists": 0.0046,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 9,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2123,
            "combined_rank_score": 802.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 510.0,
            "sofascore_rating": 6.8529,
            "sofascore_appearances": 34.0,
            "fifa_rank": 1095.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "projected_match_rating": 6.9543,
            "source_file": "data/player_rankings.csv",
            "player_name": "Diogo Dalot",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "José Ortiz",
                  "ranking": 2118
                },
                {
                  "player_name": "Christian Bracco",
                  "ranking": 2119
                },
                {
                  "player_name": "Park Su-been",
                  "ranking": 2120
                },
                {
                  "player_name": "Edvinas Girdvainis",
                  "ranking": 2121
                },
                {
                  "player_name": "Son Seung-Min",
                  "ranking": 2122
                }
              ],
              "lower": [
                {
                  "player_name": "Ainsley Maitland-Niles",
                  "ranking": 2124
                },
                {
                  "player_name": "Crysencio Summerville",
                  "ranking": 2125
                },
                {
                  "player_name": "Gabriel Jesus",
                  "ranking": 2126
                },
                {
                  "player_name": "Sepp van den Berg",
                  "ranking": 2127
                },
                {
                  "player_name": "Chan-hyung Lee",
                  "ranking": 2128
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "D_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalLongBalls",
              "totalOppositionHalfPasses",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "ballRecovery",
              "touches",
              "totalClearance",
              "wonTackle",
              "interceptionWon",
              "dispossessed",
              "challengeLost",
              "errorLeadToAShot",
              "errorLeadToAGoal",
              "possessionLostCtrl",
              "passValueNormalized",
              "defensiveValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "long_ball_accuracy",
              "defensive_actions",
              "tackle_success_rate",
              "touches_p90",
              "totalTackle_p90",
              "interceptionWon_p90",
              "totalClearance_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "press_vulnerability",
              "error_severity",
              "aerial_dominance",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "interceptionWon",
              "totalTackle",
              "wonTackle",
              "totalClearance",
              "aerialWon",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 14.620648198691985,
            "bench_appearance_prob": 0.34639309994054474,
            "market_value_adjustment": 1.0607,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (3 historical appearances) to 14.6 expected mins (appearance prob 0.35)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5566,
                "minutes": 56,
                "total_pass": 25,
                "accurate_pass": 23,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 39,
                "possession_lost": 5.0,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.05,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 2,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:03.814313+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 374,
                    "rows": 1289
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 74.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "touches_p90": 77.0945,
                  "accuratePass": 23.9466,
                  "possessionLostCtrl": 5.2566,
                  "totalClearance": 1.0496,
                  "totalClearance_p90": 1.2202
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.618289053440094,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0944
                      },
                      {
                        "name": "duel_win_rate",
                        "importance": 0.0353
                      },
                      {
                        "name": "duelWon_p90",
                        "importance": 0.0341
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0326
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0322
                      }
                    ],
                    "decomposition": {
                      "base": 0.9108,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2406
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0307
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0212
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0183
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0108
                        }
                      ],
                      "others": -0.0499,
                      "total": 0.6183
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.233832597732544,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0588
                      },
                      {
                        "name": "duelLost",
                        "importance": 0.0461
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0446
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0406
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0401
                      }
                    ],
                    "decomposition": {
                      "base": 1.3553,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0902
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0586
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0473
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0447
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0423
                        }
                      ],
                      "others": 0.067,
                      "total": 1.2338
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6228764057159424,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "history_matches",
                        "importance": 0.0565
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0432
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.0353
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0347
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0329
                      }
                    ],
                    "decomposition": {
                      "base": 0.8675,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1158
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0856
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0467
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0452
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0287
                        }
                      ],
                      "others": -0.016,
                      "total": 0.6229
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.1056466102600098,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.11
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0506
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0425
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0417
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0343
                      }
                    ],
                    "decomposition": {
                      "base": 3.4032,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.6949
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1907
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1529
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.066
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0535
                        }
                      ],
                      "others": -0.1396,
                      "total": 1.1056
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.7619423270225525,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0798
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0597
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0439
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0426
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0411
                      }
                    ],
                    "decomposition": {
                      "base": 1.2421,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.3511
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0376
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0257
                        },
                        {
                          "name": "error_severity",
                          "contribution": 0.0218
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.018
                        }
                      ],
                      "others": -0.0696,
                      "total": 0.7619
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.14180535078048706,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0413
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0408
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0371
                      },
                      {
                        "name": "duelWon",
                        "importance": 0.0364
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.4562,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1675
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0224
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0173
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0169
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0163
                        }
                      ],
                      "others": -0.074,
                      "total": 0.1418
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.556633949279785,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches_p90",
                        "importance": 0.0708
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0705
                      },
                      {
                        "name": "totalLongBalls",
                        "importance": 0.0537
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0518
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0478
                      }
                    ],
                    "decomposition": {
                      "base": 6.6627,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0341
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.034
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0303
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0235
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0207
                        }
                      ],
                      "others": -0.0049,
                      "total": 6.5566
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0607, quality 0.702)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9543,
                "minutes": 59,
                "total_pass": 26,
                "accurate_pass": 24,
                "duels_won": 2,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.3033,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.053,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 2,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 28000000,
                "quality_factor": 0.7022,
                "boost_factor": 1.0607
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 14.6 expected minutes (appearance prob 0.35)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9543,
                "minutes": 15,
                "total_pass": 4,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 0.8615,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0086,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.346,
                "bench_expected_minutes": 14.62
              },
              "params": {
                "expected_minutes": 14.62,
                "appearance_probability": 0.346
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9543,
                "minutes": 15,
                "total_pass": 4,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 0.8615,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0086,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.346,
                "bench_expected_minutes": 14.62
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 16, fifa_overall 78.0)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9543,
                "minutes": 15,
                "total_pass": 4,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 3,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 0.8615,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0086,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.346,
                "bench_expected_minutes": 14.62,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2123,
                "fifa_rank": 1095.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Andrey Santos": {
          "player_id": 1105779,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 17,
          "height": 180,
          "market_value": 39000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0112,
            "assists": 0,
            "expected_goals": 0.0095,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 7.3862,
            "minutes": 23,
            "total_pass": 8,
            "accurate_pass": 7,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 4,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 10,
            "possession_lost": 0.7487,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 0,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 14,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.56,
            "bench_expected_minutes": 23.31,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 13,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.0057,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 8,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 10,
                "rating": 6.6,
                "assists": 0,
                "expected_assists": 0.004,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 14,
                "tackles": 3,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 67,
                "rating": 7.1,
                "assists": 0,
                "expected_assists": 0.2324,
                "total_shots": 0,
                "total_pass": 60,
                "accurate_pass": 55,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1467,
            "combined_rank_score": 606.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 511.0,
            "sofascore_rating": 6.85,
            "sofascore_appearances": 2.0,
            "fifa_rank": 701.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "substitute",
            "projected_match_rating": 7.3862,
            "source_file": "data/player_rankings.csv",
            "player_name": "Andrey Santos",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bekhruz Shaydulov",
                  "ranking": 1462
                },
                {
                  "player_name": "Nicolás Palma",
                  "ranking": 1463
                },
                {
                  "player_name": "Ahmadullo Muqimjonov",
                  "ranking": 1464
                },
                {
                  "player_name": "Kirill Pechenin",
                  "ranking": 1465
                },
                {
                  "player_name": "Paulinho",
                  "ranking": 1466
                }
              ],
              "lower": [
                {
                  "player_name": "Miloš Kerkez",
                  "ranking": 1468
                },
                {
                  "player_name": "Misael Llantén",
                  "ranking": 1469
                },
                {
                  "player_name": "Gabriel Graciani",
                  "ranking": 1470
                },
                {
                  "player_name": "Hyeong-won Kim",
                  "ranking": 1471
                },
                {
                  "player_name": "Matías Fernández-Pardo",
                  "ranking": 1472
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 23.31076870157783,
            "bench_appearance_prob": 0.559580395526265,
            "market_value_adjustment": 1.0826,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (3 historical appearances) to 23.3 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0399,
                "assists": 0,
                "expected_goals": 0.0339,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.8224,
                "minutes": 30,
                "total_pass": 28,
                "accurate_pass": 26,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 13,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 35,
                "possession_lost": 2.67,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 50,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 7.1
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.0,
                  "ballRecovery_p90": 7.8339,
                  "progressiveBallCarriesCount": 0.2809,
                  "expectedAssists": 0.0688,
                  "ballRecovery": 2.0651
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.641568660736084,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2378
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0743
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0279
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0244
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0189
                        }
                      ],
                      "others": -0.0488,
                      "total": 0.6416
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03994615003466606,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0224
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0114
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0045
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.003
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0027
                        }
                      ],
                      "others": -0.009,
                      "total": 0.0399
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07588934153318405,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0063
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0048
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0044
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0027
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0019
                        }
                      ],
                      "others": -0.005,
                      "total": 0.0759
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.033865053206682205,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0301
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0155
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0077
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0051
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0039
                        }
                      ],
                      "others": -0.0203,
                      "total": 0.0339
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.21165595948696136,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0421
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0233
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0158
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0143
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0086
                        }
                      ],
                      "others": -0.0338,
                      "total": 0.2117
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.41785162687301636,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1983
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.153
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0556
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0477
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0426
                        }
                      ],
                      "others": -0.1433,
                      "total": 0.4179
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8223981857299805,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.067
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0228
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0183
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0171
                        },
                        {
                          "name": "kilometersCovered",
                          "contribution": 0.0134
                        }
                      ],
                      "others": -0.014,
                      "total": 6.8224
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0826, quality 0.775)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0432,
                "assists": 0,
                "expected_goals": 0.0367,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.3862,
                "minutes": 32,
                "total_pass": 30,
                "accurate_pass": 28,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 14,
                "accurate_own_half_passes": 12,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 16,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 2.8906,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 54,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 39000000,
                "quality_factor": 0.7754,
                "boost_factor": 1.0826
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 23.3 expected minutes (appearance prob 0.56)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0112,
                "assists": 0,
                "expected_goals": 0.0095,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.3862,
                "minutes": 23,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 10,
                "possession_lost": 0.7487,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 14,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.56,
                "bench_expected_minutes": 23.31
              },
              "params": {
                "expected_minutes": 23.31,
                "appearance_probability": 0.56
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0112,
                "assists": 0,
                "expected_goals": 0.0095,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.3862,
                "minutes": 23,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 10,
                "possession_lost": 0.7487,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 14,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.56,
                "bench_expected_minutes": 23.31
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 10, fifa_overall 80.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0112,
                "assists": 0,
                "expected_goals": 0.0095,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.3862,
                "minutes": 23,
                "total_pass": 8,
                "accurate_pass": 7,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 4,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 10,
                "possession_lost": 0.7487,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 14,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.56,
                "bench_expected_minutes": 23.31,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1467,
                "fifa_rank": 701.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 80.0
              }
            }
          ]
        },
        "Patrick Dorgu": {
          "player_id": 1397168,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 13,
          "height": 185,
          "market_value": 33000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.017,
            "assists": 0,
            "expected_goals": 0.014,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 7.1173,
            "minutes": 23,
            "total_pass": 2,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 4,
            "possession_lost": 1.3792,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 1,
            "total_progression": 6,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.553,
            "bench_expected_minutes": 23.17,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "available_bench_not_projected_used",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 20,
                "rating": 6.0,
                "assists": 0,
                "expected_assists": 0.0066,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 5,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 10,
                "rating": 6.5,
                "assists": 0,
                "expected_goals": 0.1838,
                "expected_assists": 0.006,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 6,
                "accurate_pass": 5,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 45,
                "rating": 5.4,
                "assists": 0,
                "expected_goals": 0.4697,
                "expected_assists": 0.028,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 11,
                "accurate_pass": 8,
                "interceptions": 1,
                "aerial_won": 2,
                "duels_won": 2
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1487,
            "combined_rank_score": 615.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 102.0,
            "sofascore_rating": 7.46,
            "sofascore_appearances": 5.0,
            "fifa_rank": 1129.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "substitute",
            "projected_match_rating": 7.1173,
            "source_file": "data/player_rankings.csv",
            "player_name": "Patrick Dorgu",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Asror Gafurov",
                  "ranking": 1482
                },
                {
                  "player_name": "Bojan Mlađović",
                  "ranking": 1483
                },
                {
                  "player_name": "Farkhod Sokhibzhonov",
                  "ranking": 1484
                },
                {
                  "player_name": "Florian Lejeune",
                  "ranking": 1485
                },
                {
                  "player_name": "Dimitrios Valkanis",
                  "ranking": 1486
                }
              ],
              "lower": [
                {
                  "player_name": "Quinten Timber",
                  "ranking": 1488
                },
                {
                  "player_name": "Jon Pacheco",
                  "ranking": 1489
                },
                {
                  "player_name": "Brahim Díaz",
                  "ranking": 1490
                },
                {
                  "player_name": "Lucas Assadi",
                  "ranking": 1491
                },
                {
                  "player_name": "Bryan Cristante",
                  "ranking": 1492
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "M_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "keyPass",
              "expectedAssists",
              "totalCross",
              "accurateCross",
              "duelWon",
              "duelLost",
              "aerialWon",
              "ballRecovery",
              "touches",
              "interceptionWon",
              "wonTackle",
              "possessionLostCtrl",
              "dispossessed",
              "numberOfSprints",
              "kilometersCovered",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "creative_index",
              "touches_p90",
              "totalPass_p90",
              "keyPass_p90",
              "duelWon_p90",
              "ballRecovery_p90",
              "ballCarriesCount_p90",
              "creative_efficiency",
              "cross_accuracy",
              "cross_creative_contribution",
              "defensive_midfield_actions",
              "press_vulnerability",
              "progressive_carries_p90",
              "intensity_index",
              "history_matches"
            ],
            "targets_predicted": [
              "keyPass",
              "expectedAssists",
              "goalAssist",
              "expectedGoals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 23.166008559676722,
            "bench_appearance_prob": 0.5530003890762146,
            "market_value_adjustment": 1.0717,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (3 historical appearances) to 23.2 expected mins (appearance prob 0.55)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 7 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0616,
                "assists": 0,
                "expected_goals": 0.0507,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.6414,
                "minutes": 25,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 5.0,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 2,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 21,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:10.419138+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 461,
                    "rows": 1422
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 20.0,
                    "is_starting": false,
                    "weight": 0.3887,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.3304,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.2809,
                    "rating": 5.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "totalShots": 1.5034,
                  "ballRecovery_p90": 1.7493,
                  "progressiveBallCarriesCount": 0.6608,
                  "expectedAssists": 0.0124,
                  "ballRecovery": 0.3887
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.618728756904602,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0551
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0393
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.035
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0319
                      }
                    ],
                    "decomposition": {
                      "base": 0.9691,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2325
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.063
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0558
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0342
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0274
                        }
                      ],
                      "others": -0.0059,
                      "total": 0.6187
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06161705404520035,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0714
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0375
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0361
                      },
                      {
                        "name": "accurateCross",
                        "importance": 0.0356
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0345
                      }
                    ],
                    "decomposition": {
                      "base": 0.0929,
                      "items": [
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0195
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.007
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0058
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0048
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.004
                        }
                      ],
                      "others": 0.0018,
                      "total": 0.0616
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.07761307805776596,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0442
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0378
                      },
                      {
                        "name": "totalCross",
                        "importance": 0.0368
                      },
                      {
                        "name": "cross_accuracy",
                        "importance": 0.036
                      },
                      {
                        "name": "interceptionWon",
                        "importance": 0.0315
                      }
                    ],
                    "decomposition": {
                      "base": 0.0956,
                      "items": [
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0069
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0061
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0038
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0021
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0021
                        }
                      ],
                      "others": -0.0054,
                      "total": 0.0776
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.05067267641425133,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.077
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0622
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0454
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0399
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0384
                      }
                    ],
                    "decomposition": {
                      "base": 0.1087,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0225
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0145
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0139
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0137
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0093
                        }
                      ],
                      "others": -0.0119,
                      "total": 0.0507
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.23588775098323822,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0617
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0463
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0328
                      },
                      {
                        "name": "progressive_carries_p90",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.3324,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.076
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0168
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.01
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0086
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0087
                        }
                      ],
                      "others": -0.011,
                      "total": 0.2359
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.1593824625015259,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.0685
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0518
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0356
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.034
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 1.0584,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2446
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2353
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.1786
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0619
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0557
                        }
                      ],
                      "others": -0.2045,
                      "total": 1.1594
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.641360759735107,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0847
                      },
                      {
                        "name": "ballRecovery",
                        "importance": 0.0836
                      },
                      {
                        "name": "kilometersCovered",
                        "importance": 0.0597
                      },
                      {
                        "name": "defensive_midfield_actions",
                        "importance": 0.05
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0441
                      }
                    ],
                    "decomposition": {
                      "base": 6.8318,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0746
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0466
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0224
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.02
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0178
                        }
                      ],
                      "others": -0.009,
                      "total": 6.6414
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0717, quality 0.739)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.066,
                "assists": 0,
                "expected_goals": 0.0543,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1173,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 17,
                "possession_lost": 5.3583,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 2,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 23,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 33000000,
                "quality_factor": 0.7389,
                "boost_factor": 1.0717
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 23.2 expected minutes (appearance prob 0.55)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.017,
                "assists": 0,
                "expected_goals": 0.014,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.1173,
                "minutes": 23,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 4,
                "possession_lost": 1.3792,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.553,
                "bench_expected_minutes": 23.17
              },
              "params": {
                "expected_minutes": 23.17,
                "appearance_probability": 0.553
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.017,
                "assists": 0,
                "expected_goals": 0.014,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.1173,
                "minutes": 23,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 4,
                "possession_lost": 1.3792,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.553,
                "bench_expected_minutes": 23.17
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 13, fifa_overall 78.0)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.017,
                "assists": 0,
                "expected_goals": 0.014,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.1173,
                "minutes": 23,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 4,
                "possession_lost": 1.3792,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 1,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.553,
                "bench_expected_minutes": 23.17,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "available_bench_not_projected_used",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1487,
                "fifa_rank": 1129.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Marcus Rashford": {
          "player_id": 814590,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 188,
          "market_value": 38000000,
          "stats": {
            "expected_goals": 0.0903,
            "goal_rate": 0.1064,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0344,
            "key_pass": 0,
            "rating": 7.214,
            "minutes": 27,
            "total_pass": 9,
            "accurate_pass": 6,
            "duels_won": 2,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 3.8351,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 32,
            "progressive_carries": 2,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.619,
            "bench_expected_minutes": 26.61,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 70,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.0634,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 17,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 80,
                "rating": 6.9,
                "assists": 0,
                "expected_goals": 0.2566,
                "expected_assists": 0.0456,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 2,
                "total_pass": 31,
                "accurate_pass": 24,
                "key_pass": 3,
                "tackles": 3,
                "tackles_won": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 45,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0973,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 19,
                "key_pass": 4,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 471,
            "combined_rank_score": 281.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 191.0,
            "sofascore_rating": 7.2182,
            "sofascore_appearances": 11.0,
            "fifa_rank": 371.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 7.214,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marcus Rashford",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Gjoko Zajkov",
                  "ranking": 466
                },
                {
                  "player_name": "Ramón Terrats",
                  "ranking": 467
                },
                {
                  "player_name": "Igor Formiga",
                  "ranking": 468
                },
                {
                  "player_name": "Anthony Caceres",
                  "ranking": 469
                },
                {
                  "player_name": "James Garner",
                  "ranking": 470
                }
              ],
              "lower": [
                {
                  "player_name": "João Cancelo",
                  "ranking": 472
                },
                {
                  "player_name": "Oh-kyu Kim",
                  "ranking": 473
                },
                {
                  "player_name": "Oscar Lopez",
                  "ranking": 474
                },
                {
                  "player_name": "Eberechi Eze",
                  "ranking": 475
                },
                {
                  "player_name": "Hugo Ekitiké",
                  "ranking": 476
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 26.60877044152253,
            "bench_appearance_prob": 0.6185804746146604,
            "market_value_adjustment": 1.081,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 26.6 expected mins (appearance prob 0.62)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1532,
                "goal_rate": 0.333,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1078,
                "key_pass": 1,
                "rating": 6.6736,
                "minutes": 65,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 13,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 12.0,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 2,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 100,
                "progressive_carries": 5,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:14.946589+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 70.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "minutesPlayed": 66.2828,
                  "totalShots": 1.3217,
                  "onTargetScoringAttempt": 0.6608,
                  "touches": 40.552,
                  "dribbleValueNormalized": 0.4468
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.153182253241539,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0577
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0192
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0127
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.012
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0108
                        }
                      ],
                      "others": -0.0485,
                      "total": 0.1532
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.3329566717147827,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1269
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0594
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0355
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0275
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0249
                        }
                      ],
                      "others": -0.0969,
                      "total": 0.333
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6408982276916504,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0827
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0263
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0253
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0221
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0217
                        }
                      ],
                      "others": -0.0753,
                      "total": 0.6409
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.5657016038894653,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0896
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.062
                      },
                      {
                        "name": "shotOffTarget",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0517
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0408
                      }
                    ],
                    "decomposition": {
                      "base": 1.531,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1999
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1736
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1119
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1113
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0918
                        }
                      ],
                      "others": 0.0932,
                      "total": 1.5657
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.10781938582658768,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0143
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0139
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.011
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0114
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0091
                        }
                      ],
                      "others": 0.0084,
                      "total": 0.1078
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6894168853759766,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1431
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0812
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0384
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0375
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0357
                        }
                      ],
                      "others": 0.0282,
                      "total": 0.6894
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.673647880554199,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.0837
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0645
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0631
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0591
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0347
                        }
                      ],
                      "others": -0.0487,
                      "total": 6.6736
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0810, quality 0.770)",
              "stats": {
                "expected_goals": 0.1656,
                "goal_rate": 0.3599,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1165,
                "key_pass": 1,
                "rating": 7.214,
                "minutes": 70,
                "total_pass": 29,
                "accurate_pass": 22,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 14,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 12.9716,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 109,
                "progressive_carries": 5,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 38000000,
                "quality_factor": 0.7699,
                "boost_factor": 1.081
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.6 expected minutes (appearance prob 0.62)",
              "stats": {
                "expected_goals": 0.049,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61
              },
              "params": {
                "expected_minutes": 26.61,
                "appearance_probability": 0.619
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.049,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "expected_goals": 0.0903,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.049,
                  "after": 0.0903
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 82.0)",
              "stats": {
                "expected_goals": 0.0903,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 471,
                "fifa_rank": 371.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            }
          ]
        },
        "Joshua Zirkzee": {
          "player_id": 917007,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 193,
          "market_value": 21000000,
          "stats": {
            "expected_goals": 0.1621,
            "goal_rate": 0.0551,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0319,
            "duels_won": 1,
            "aerial_won": 1,
            "rating": 7.2,
            "minutes": 26,
            "total_pass": 9,
            "accurate_pass": 7,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 2.7547,
            "dispossessed": 1.3,
            "duels_lost": 1,
            "aerial_lost": 2,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 2,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0673,
            "offsides": 1,
            "ball_carries": 7,
            "total_progression": 17,
            "progressive_carries": 2,
            "bench_appearance_probability": 0.595,
            "bench_expected_minutes": 26.1,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3218,
            "combined_rank_score": 1167.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 907.0,
            "sofascore_rating": 6.5125,
            "sofascore_appearances": 24.0,
            "fifa_rank": 1427.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "projected_match_rating": 7.2,
            "source_file": "data/player_rankings.csv",
            "player_name": "Joshua Zirkzee",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Benjamin Henrichs",
                  "ranking": 3213
                },
                {
                  "player_name": "Harvey Elliott",
                  "ranking": 3214
                },
                {
                  "player_name": "Azor Matusiwa",
                  "ranking": 3215
                },
                {
                  "player_name": "Eljif Elmas",
                  "ranking": 3216
                },
                {
                  "player_name": "Lazaros Rota",
                  "ranking": 3217
                }
              ],
              "lower": [
                {
                  "player_name": "Camilo Vargas",
                  "ranking": 3219
                },
                {
                  "player_name": "Hugo Duro",
                  "ranking": 3220
                },
                {
                  "player_name": "Chris Führich",
                  "ranking": 3221
                },
                {
                  "player_name": "Lucien Agoumé",
                  "ranking": 3222
                },
                {
                  "player_name": "Maarten Vandevoordt",
                  "ranking": 3223
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 26.09746860076133,
            "bench_appearance_prob": 0.5953394818527877,
            "market_value_adjustment": 0.6408,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€21,000,000) scaled to 26.1 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.64)",
              "stats": {
                "expected_goals": 0.303,
                "goal_rate": 0.19,
                "goals": 0,
                "total_shots": 3,
                "shots_on_target": 2,
                "expected_assists": 0.11,
                "duels_won": 5,
                "aerial_won": 2,
                "rating": 7.2,
                "minutes": 90,
                "total_pass": 32,
                "accurate_pass": 24,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 46,
                "possession_lost": 9.5,
                "dispossessed": 1.3,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.232,
                "offsides": 1,
                "ball_carries": 23,
                "total_progression": 57,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.1 expected minutes (appearance prob 0.60)",
              "stats": {
                "expected_goals": 0.0879,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "params": {
                "expected_minutes": 26.1,
                "appearance_probability": 0.595
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0879,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "expected_goals": 0.1621,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0879,
                  "after": 0.1621
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 17, fifa_overall 77.0)",
              "stats": {
                "expected_goals": 0.1621,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3218,
                "fifa_rank": 1427.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        }
      },
      "substitutes": {
        "Marcus Rashford": {
          "player_id": 814590,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 188,
          "market_value": 38000000,
          "stats": {
            "expected_goals": 0.0903,
            "goal_rate": 0.1064,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0344,
            "key_pass": 0,
            "rating": 7.214,
            "minutes": 27,
            "total_pass": 9,
            "accurate_pass": 6,
            "duels_won": 2,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 3.8351,
            "dispossessed": 0.0,
            "duels_lost": 1,
            "aerial_lost": 0,
            "total_contest": 1,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 1,
            "assists": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "offsides": 0,
            "ball_carries": 4,
            "total_progression": 32,
            "progressive_carries": 2,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.619,
            "bench_expected_minutes": 26.61,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_type": "played",
              "match_id": 16363645.0,
              "match_date": "2026-09-13 15:30:00 UTC",
              "league_name": "Premier League",
              "league_id": 17.0,
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": 96668.0,
              "season_name": "Premier League 26/27",
              "season_year": "26/27",
              "home_team": "Man Utd",
              "away_team": "Man City",
              "home_score_current": 0.0,
              "away_score_current": 1.0,
              "team_side": "home",
              "status_code": 100.0,
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": true,
              "team": "Man Utd",
              "opponent": "Man City",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16363259.0,
              "match_date": "2026-09-06",
              "home_team": "Everton",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Everton",
              "stats": {
                "minutes": 70,
                "rating": 7.0,
                "assists": 0,
                "expected_assists": 0.0634,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 17,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363253.0,
              "match_date": "2026-08-30",
              "home_team": "Manchester United",
              "away_team": "Ipswich Town",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Manchester United",
              "opponent": "Ipswich Town",
              "stats": {
                "minutes": 80,
                "rating": 6.9,
                "assists": 0,
                "expected_goals": 0.2566,
                "expected_assists": 0.0456,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 2,
                "total_pass": 31,
                "accurate_pass": 24,
                "key_pass": 3,
                "tackles": 3,
                "tackles_won": 1,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16363634.0,
              "match_date": "2026-08-22",
              "home_team": "Hull City",
              "away_team": "Manchester United",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Manchester United",
              "opponent": "Hull City",
              "stats": {
                "minutes": 45,
                "rating": 6.4,
                "assists": 0,
                "expected_assists": 0.0973,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 19,
                "key_pass": 4,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "Premier League",
              "league_id": "17.0",
              "league_slug": "premier-league",
              "league_country": "England",
              "season_id": "96668.0",
              "season_name": "Premier League 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 471,
            "combined_rank_score": 281.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 191.0,
            "sofascore_rating": 7.2182,
            "sofascore_appearances": 11.0,
            "fifa_rank": 371.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "projected_match_rating": 7.214,
            "source_file": "data/player_rankings.csv",
            "player_name": "Marcus Rashford",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Gjoko Zajkov",
                  "ranking": 466
                },
                {
                  "player_name": "Ramón Terrats",
                  "ranking": 467
                },
                {
                  "player_name": "Igor Formiga",
                  "ranking": 468
                },
                {
                  "player_name": "Anthony Caceres",
                  "ranking": 469
                },
                {
                  "player_name": "James Garner",
                  "ranking": 470
                }
              ],
              "lower": [
                {
                  "player_name": "João Cancelo",
                  "ranking": 472
                },
                {
                  "player_name": "Oh-kyu Kim",
                  "ranking": 473
                },
                {
                  "player_name": "Oscar Lopez",
                  "ranking": 474
                },
                {
                  "player_name": "Eberechi Eze",
                  "ranking": 475
                },
                {
                  "player_name": "Hugo Ekitiké",
                  "ranking": 476
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.438,
          "history_matches": 3,
          "xgboost_reasoning": {
            "model_source": "xgboost_regressor",
            "position_service": "F_service",
            "features_evaluated": [
              "minutesPlayed",
              "is_starting_11",
              "totalPass",
              "accuratePass",
              "totalOppositionHalfPasses",
              "accurateOppositionHalfPasses",
              "totalShots",
              "onTargetScoringAttempt",
              "shotOffTarget",
              "bigChanceMissed",
              "expectedAssists",
              "keyPass",
              "duelWon",
              "duelLost",
              "aerialWon",
              "aerialLost",
              "touches",
              "dispossessed",
              "wasFouled",
              "topSpeed",
              "numberOfSprints",
              "ballRecovery",
              "possessionLostCtrl",
              "passValueNormalized",
              "dribbleValueNormalized",
              "defensiveValueNormalized",
              "shotValueNormalized",
              "ballCarriesCount",
              "totalProgression",
              "progressiveBallCarriesCount",
              "pass_accuracy",
              "duel_win_rate",
              "opp_half_pass_pct",
              "shot_accuracy",
              "xg_per_shot",
              "touches_p90",
              "totalShots_p90",
              "duelWon_p90",
              "ballCarriesCount_p90",
              "big_chance_conversion",
              "shot_waste_rate",
              "aerial_dominance",
              "press_resistance_fwd",
              "speed_threat",
              "progressive_carries_p90",
              "history_matches"
            ],
            "targets_predicted": [
              "expectedGoals",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "expectedAssists",
              "keyPass",
              "rating"
            ],
            "history_matches": 3,
            "data_confidence": 0.438,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 26.60877044152253,
            "bench_appearance_prob": 0.6185804746146604,
            "market_value_adjustment": 1.081,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 26.6 expected mins (appearance prob 0.62)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1532,
                "goal_rate": 0.333,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1078,
                "key_pass": 1,
                "rating": 6.6736,
                "minutes": 65,
                "total_pass": 27,
                "accurate_pass": 20,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 13,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 12.0,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 2,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 13,
                "total_progression": 100,
                "progressive_carries": 5,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 4,
                  "trained_at": "2026-09-20T13:11:14.946589+00:00",
                  "trained_on": {
                    "matches": 93,
                    "players": 278,
                    "rows": 769
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Everton",
                    "minutes": 70.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-30",
                    "opponent": "Ipswich Town",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-22",
                    "opponent": "Hull City",
                    "minutes": 45.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "minutesPlayed": 66.2828,
                  "totalShots": 1.3217,
                  "onTargetScoringAttempt": 0.6608,
                  "touches": 40.552,
                  "dribbleValueNormalized": 0.4468
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.153182253241539,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.093
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0745
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0545
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.043
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0314
                      }
                    ],
                    "decomposition": {
                      "base": 0.2757,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0577
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0192
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0127
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.012
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0108
                        }
                      ],
                      "others": -0.0485,
                      "total": 0.1532
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.3329566717147827,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0715
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0371
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0298
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0268
                      }
                    ],
                    "decomposition": {
                      "base": 0.3455,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1269
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0594
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0355
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0275
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0249
                        }
                      ],
                      "others": -0.0969,
                      "total": 0.333
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.6408982276916504,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0703
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0486
                      },
                      {
                        "name": "touches",
                        "importance": 0.0401
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0347
                      }
                    ],
                    "decomposition": {
                      "base": 0.6329,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0827
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0263
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0253
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0221
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0217
                        }
                      ],
                      "others": -0.0753,
                      "total": 0.6409
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.5657016038894653,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0896
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.062
                      },
                      {
                        "name": "shotOffTarget",
                        "importance": 0.0522
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0517
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0408
                      }
                    ],
                    "decomposition": {
                      "base": 1.531,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1999
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1736
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1119
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1113
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0918
                        }
                      ],
                      "others": 0.0932,
                      "total": 1.5657
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.10781938582658768,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0802
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0621
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0547
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0537
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0397
                      }
                    ],
                    "decomposition": {
                      "base": 0.0579,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0143
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0139
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.011
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0114
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0091
                        }
                      ],
                      "others": 0.0084,
                      "total": 0.1078
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6894168853759766,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "is_starting_11",
                        "importance": 0.0738
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0657
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0615
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0458
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0313
                      }
                    ],
                    "decomposition": {
                      "base": 0.6829,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1431
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0812
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0384
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0375
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0357
                        }
                      ],
                      "others": 0.0282,
                      "total": 0.6894
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.673647880554199,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "speed_threat",
                        "importance": 0.0598
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0489
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0439
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0404
                      }
                    ],
                    "decomposition": {
                      "base": 6.7136,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.0837
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0645
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0631
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0591
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0347
                        }
                      ],
                      "others": -0.0487,
                      "total": 6.6736
                    }
                  }
                ],
                "caveat": "Raw XGBoost output: no per-90 normalization; minutesPlayed is the player's historical average."
              }
            },
            {
              "step": "market_value_boost",
              "description": "Market-value quality scaling (boost 1.0810, quality 0.770)",
              "stats": {
                "expected_goals": 0.1656,
                "goal_rate": 0.3599,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1165,
                "key_pass": 1,
                "rating": 7.214,
                "minutes": 70,
                "total_pass": 29,
                "accurate_pass": 22,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 14,
                "crosses_total": 3,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 12.9716,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 4,
                "won_contest": 2,
                "ball_recovery": 3,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 14,
                "total_progression": 109,
                "progressive_carries": 5,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 38000000,
                "quality_factor": 0.7699,
                "boost_factor": 1.081
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.6 expected minutes (appearance prob 0.62)",
              "stats": {
                "expected_goals": 0.049,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61
              },
              "params": {
                "expected_minutes": 26.61,
                "appearance_probability": 0.619
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.049,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "expected_goals": 0.0903,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.049,
                  "after": 0.0903
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 12, fifa_overall 82.0)",
              "stats": {
                "expected_goals": 0.0903,
                "goal_rate": 0.1064,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0344,
                "key_pass": 0,
                "rating": 7.214,
                "minutes": 27,
                "total_pass": 9,
                "accurate_pass": 6,
                "duels_won": 2,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 3.8351,
                "dispossessed": 0.0,
                "duels_lost": 1,
                "aerial_lost": 0,
                "total_contest": 1,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 1,
                "assists": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "offsides": 0,
                "ball_carries": 4,
                "total_progression": 32,
                "progressive_carries": 2,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.619,
                "bench_expected_minutes": 26.61,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 471,
                "fifa_rank": 371.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 82.0
              }
            }
          ]
        },
        "Joshua Zirkzee": {
          "player_id": 917007,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 11,
          "height": 193,
          "market_value": 21000000,
          "stats": {
            "expected_goals": 0.1621,
            "goal_rate": 0.0551,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0319,
            "duels_won": 1,
            "aerial_won": 1,
            "rating": 7.2,
            "minutes": 26,
            "total_pass": 9,
            "accurate_pass": 7,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 1,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 2.7547,
            "dispossessed": 1.3,
            "duels_lost": 1,
            "aerial_lost": 2,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 2,
            "fouls": 0,
            "fouls_drawn": 0,
            "assists": 0,
            "shots_off_target": 0,
            "key_pass": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0673,
            "offsides": 1,
            "ball_carries": 7,
            "total_progression": 17,
            "progressive_carries": 2,
            "bench_appearance_probability": 0.595,
            "bench_expected_minutes": 26.1,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.679,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "fifa_overall": 77.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3218,
            "combined_rank_score": 1167.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 907.0,
            "sofascore_rating": 6.5125,
            "sofascore_appearances": 24.0,
            "fifa_rank": 1427.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "projected_match_rating": 7.2,
            "source_file": "data/player_rankings.csv",
            "player_name": "Joshua Zirkzee",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Benjamin Henrichs",
                  "ranking": 3213
                },
                {
                  "player_name": "Harvey Elliott",
                  "ranking": 3214
                },
                {
                  "player_name": "Azor Matusiwa",
                  "ranking": 3215
                },
                {
                  "player_name": "Eljif Elmas",
                  "ranking": 3216
                },
                {
                  "player_name": "Lazaros Rota",
                  "ranking": 3217
                }
              ],
              "lower": [
                {
                  "player_name": "Camilo Vargas",
                  "ranking": 3219
                },
                {
                  "player_name": "Hugo Duro",
                  "ranking": 3220
                },
                {
                  "player_name": "Chris Führich",
                  "ranking": 3221
                },
                {
                  "player_name": "Lucien Agoumé",
                  "ranking": 3222
                },
                {
                  "player_name": "Maarten Vandevoordt",
                  "ranking": 3223
                }
              ]
            }
          },
          "data_sources": [
            "market_value"
          ],
          "data_confidence": 0.25,
          "history_matches": 0,
          "xgboost_reasoning": {
            "model_source": "market_value_prior",
            "position_service": "F_service",
            "features_evaluated": [],
            "targets_predicted": [],
            "history_matches": 0,
            "data_confidence": 0.25,
            "data_sources": [
              "market_value"
            ],
            "bench_expected_minutes": 26.09746860076133,
            "bench_appearance_prob": 0.5953394818527877,
            "market_value_adjustment": 0.6408,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€21,000,000) scaled to 26.1 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.64)",
              "stats": {
                "expected_goals": 0.303,
                "goal_rate": 0.19,
                "goals": 0,
                "total_shots": 3,
                "shots_on_target": 2,
                "expected_assists": 0.11,
                "duels_won": 5,
                "aerial_won": 2,
                "rating": 7.2,
                "minutes": 90,
                "total_pass": 32,
                "accurate_pass": 24,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 18,
                "accurate_opp_half_passes": 13,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 46,
                "possession_lost": 9.5,
                "dispossessed": 1.3,
                "duels_lost": 5,
                "aerial_lost": 2,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 2,
                "fouls": 2,
                "fouls_drawn": 2,
                "assists": 0,
                "shots_off_target": 1,
                "key_pass": 1,
                "interceptions": 0,
                "tackles_won": 1,
                "tackles": 1,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.232,
                "offsides": 1,
                "ball_carries": 23,
                "total_progression": 57,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 21000000,
                "quality_factor": 0.6408
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.1 expected minutes (appearance prob 0.60)",
              "stats": {
                "expected_goals": 0.0879,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "params": {
                "expected_minutes": 26.1,
                "appearance_probability": 0.595
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0879,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.01 (squad xG sum 1.6305, xG scale 1.8436)",
              "stats": {
                "expected_goals": 0.1621,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0
              },
              "params": {
                "team_lambda": 3.006,
                "squad_xg_sum": 1.6305,
                "xg_scale": 1.8436,
                "scoreline_reset": true
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0879,
                  "after": 0.1621
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached (match squad rank 17, fifa_overall 77.0)",
              "stats": {
                "expected_goals": 0.1621,
                "goal_rate": 0.0551,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0319,
                "duels_won": 1,
                "aerial_won": 1,
                "rating": 7.2,
                "minutes": 26,
                "total_pass": 9,
                "accurate_pass": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 1,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.7547,
                "dispossessed": 1.3,
                "duels_lost": 1,
                "aerial_lost": 2,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 2,
                "fouls": 0,
                "fouls_drawn": 0,
                "assists": 0,
                "shots_off_target": 0,
                "key_pass": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0673,
                "offsides": 1,
                "ball_carries": 7,
                "total_progression": 17,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.595,
                "bench_expected_minutes": 26.1,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.679,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3218,
                "fifa_rank": 1427.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "fifa_overall": 77.0
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 3,
        "expected_goals": 3.01,
        "expected_assists": 0.96,
        "total_shots": 19,
        "shots_on_target": 5,
        "total_passes": 540,
        "interceptions": 7,
        "tackles": 9,
        "avg_rating": 7.54,
        "possession_estimated_pct": 51.1,
        "pressing_actions_per_90": 8.3
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Kevin",
        "attacker_role": "LWB",
        "attacker_market_value": 26000000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.686,
        "defenders": [
          "Youri Tielemans"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.796,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.367,
        "xg_contribution": 0.0484,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.6,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 2.7,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "HIGH",
        "defender_stats": [
          {
            "player": "Youri Tielemans",
            "role": "RWB",
            "market_value": 43000000,
            "tackles_attempted": 2.2,
            "tackles_won": 2.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.633
          }
        ],
        "duel_analysis": "Kevin (LWB) faces tough defensive resistance against Youri Tielemans in a direct 1v1 contest. Duel win probability: 37%. The quality gap is significant (€26M vs €43M avg). Projected xG contribution: 0.048 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Oscar Bobb",
        "attacker_role": "CM",
        "attacker_market_value": 27000000,
        "attacker_height": 174,
        "attacker_skill_quality": 0.694,
        "defenders": [
          "Carlos Baleba"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.834,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.337,
        "xg_contribution": 0.1613,
        "shots_in_zone": 1.4,
        "dribbles_attempted": 3,
        "dribbles_successful": 0.9,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.5,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Carlos Baleba",
            "role": "CM",
            "market_value": 53000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.2,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.663
          }
        ],
        "duel_analysis": "Oscar Bobb (CM) faces tough defensive resistance against Carlos Baleba in a direct 1v1 contest. Duel win probability: 34%. The quality gap is significant (€27M vs €53M avg). Projected xG contribution: 0.161 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Hugo Larsson",
        "attacker_role": "CM",
        "attacker_market_value": 30000000,
        "attacker_height": 187,
        "attacker_skill_quality": 0.718,
        "defenders": [
          "Carlos Baleba"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.834,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.4,
        "xg_contribution": 0.0787,
        "shots_in_zone": 1.5,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.1,
        "aerial_duels": 2,
        "aerial_won": 1.2,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Carlos Baleba",
            "role": "CM",
            "market_value": 53000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.6
          }
        ],
        "duel_analysis": "Hugo Larsson (CM) faces tough defensive resistance against Carlos Baleba in a direct 1v1 contest. Duel win probability: 40%. The quality gap is significant (€30M vs €53M avg). Projected xG contribution: 0.079 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Sander Berge",
        "attacker_role": "RWB",
        "attacker_market_value": 26000000,
        "attacker_height": 195,
        "attacker_skill_quality": 0.686,
        "defenders": [
          "Kobbie Mainoo"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.873,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.38,
        "xg_contribution": 0.0376,
        "shots_in_zone": 0.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 2,
        "aerial_won": 1.4,
        "crosses_in_zone": 2.7,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Kobbie Mainoo",
            "role": "LWB",
            "market_value": 72000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.62
          }
        ],
        "duel_analysis": "Sander Berge (RWB) faces tough defensive resistance against Kobbie Mainoo in a direct 1v1 contest. Duel win probability: 38%. The quality gap is significant (€26M vs €72M avg). Projected xG contribution: 0.038 — and is restricted in space and time on the ball."
      },
      {
        "attacker": "Gonzalo García",
        "attacker_role": "ST",
        "attacker_market_value": 31000000,
        "attacker_height": 182,
        "attacker_skill_quality": 0.725,
        "defenders": [
          "Lisandro Martínez",
          "Leny Yoro"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.813,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.1823,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.7,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.7,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Lisandro Martínez",
            "role": "CB",
            "market_value": 48000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.3,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 1.1,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Leny Yoro",
            "role": "CB",
            "market_value": 46000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.3,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 1.1,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Gonzalo García (ST) is heavily outmatched defensively against Lisandro Martínez and Leny Yoro in a 2-defender block. Duel win probability: 18%. The quality gap is significant (€31M vs €47M avg). Projected xG contribution: 0.182 — with very limited chance creation expected."
      },
      {
        "attacker": "Rodrigo Muniz",
        "attacker_role": "ST",
        "attacker_market_value": 22000000,
        "attacker_height": 184,
        "attacker_skill_quality": 0.65,
        "defenders": [
          "Lisandro Martínez",
          "Leny Yoro"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.813,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.1066,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 1.7,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.7,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Lisandro Martínez",
            "role": "CB",
            "market_value": 48000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.3,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 1.1,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Leny Yoro",
            "role": "CB",
            "market_value": 46000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.3,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.3,
            "clearances_in_zone": 1.1,
            "aerial_duels_won": 0.6,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Rodrigo Muniz (ST) is heavily outmatched defensively against Lisandro Martínez and Leny Yoro in a 2-defender block. Duel win probability: 18%. The quality gap is significant (€22M vs €47M avg). Projected xG contribution: 0.107 — with very limited chance creation expected."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Kobbie Mainoo",
        "attacker_role": "LWB",
        "attacker_market_value": 72000000,
        "attacker_height": 184,
        "attacker_skill_quality": 0.873,
        "defenders": [
          "Sander Berge"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.686,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.46,
        "xg_contribution": 0.0645,
        "shots_in_zone": 1.0,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.2,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 3.1,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Sander Berge",
            "role": "RWB",
            "market_value": 26000000,
            "tackles_attempted": 2.1,
            "tackles_won": 1.8,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.54
          }
        ],
        "duel_analysis": "Kobbie Mainoo (LWB) is evenly matched against Sander Berge in a direct 1v1 contest. Duel win probability: 46%. The quality gap is significant (€72M vs €26M avg). Projected xG contribution: 0.064 — with neither side clearly dominant."
      },
      {
        "attacker": "Carlos Baleba",
        "attacker_role": "CM",
        "attacker_market_value": 53000000,
        "attacker_height": 179,
        "attacker_skill_quality": 0.834,
        "defenders": [
          "Joshua King"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.686,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.545,
        "xg_contribution": 0.1618,
        "shots_in_zone": 1.9,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.4,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Joshua King",
            "role": "CDM",
            "market_value": 26000000,
            "tackles_attempted": 2.1,
            "tackles_won": 1.6,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.455
          }
        ],
        "duel_analysis": "Carlos Baleba (CM) is slightly favored against Joshua King in a direct 1v1 contest. Duel win probability: 54%. The quality gap is significant (€53M vs €26M avg). Projected xG contribution: 0.162 — creating consistent moderate threat."
      },
      {
        "attacker": "Amad Diallo",
        "attacker_role": "CM",
        "attacker_market_value": 44000000,
        "attacker_height": 173,
        "attacker_skill_quality": 0.8,
        "defenders": [
          "Joshua King"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.686,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.505,
        "xg_contribution": 0.1482,
        "shots_in_zone": 1.8,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.3,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Joshua King",
            "role": "CDM",
            "market_value": 26000000,
            "tackles_attempted": 2.1,
            "tackles_won": 1.7,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.495
          }
        ],
        "duel_analysis": "Amad Diallo (CM) is slightly favored against Joshua King in a direct 1v1 contest. Duel win probability: 51%. The quality gap is significant (€44M vs €26M avg). Projected xG contribution: 0.148 — creating consistent moderate threat."
      },
      {
        "attacker": "Youri Tielemans",
        "attacker_role": "RWB",
        "attacker_market_value": 43000000,
        "attacker_height": 177,
        "attacker_skill_quality": 0.796,
        "defenders": [
          "Kevin"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.686,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.473,
        "xg_contribution": 0.0856,
        "shots_in_zone": 1.1,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.8,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 2.9,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Kevin",
            "role": "LWB",
            "market_value": 26000000,
            "tackles_attempted": 2.1,
            "tackles_won": 1.8,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.527
          }
        ],
        "duel_analysis": "Youri Tielemans (RWB) is evenly matched against Kevin in a direct 1v1 contest. Duel win probability: 47%. The quality gap is significant (€43M vs €26M avg). Projected xG contribution: 0.086 — with neither side clearly dominant."
      },
      {
        "attacker": "Matheus Cunha",
        "attacker_role": "SS",
        "attacker_market_value": 79000000,
        "attacker_height": 184,
        "attacker_skill_quality": 0.881,
        "defenders": [
          "Calvin Bassey"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.71,
        "duel_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.523,
        "xg_contribution": 0.3303,
        "shots_in_zone": 2.7,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.4,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Calvin Bassey",
            "role": "CB",
            "market_value": 29000000,
            "tackles_attempted": 2.2,
            "tackles_won": 1.7,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.477
          }
        ],
        "duel_analysis": "Matheus Cunha (SS) is slightly favored against Calvin Bassey in a direct 1v1 contest. Duel win probability: 52%. The quality gap is significant (€79M vs €29M avg). Projected xG contribution: 0.330 — creating consistent moderate threat."
      },
      {
        "attacker": "Bryan Mbeumo",
        "attacker_role": "SS",
        "attacker_market_value": 73000000,
        "attacker_height": 173,
        "attacker_skill_quality": 0.875,
        "defenders": [
          "Calvin Bassey"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.71,
        "duel_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.476,
        "xg_contribution": 0.422,
        "shots_in_zone": 2.6,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.3,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Calvin Bassey",
            "role": "CB",
            "market_value": 29000000,
            "tackles_attempted": 2.2,
            "tackles_won": 1.8,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.524
          }
        ],
        "duel_analysis": "Bryan Mbeumo (SS) is evenly matched against Calvin Bassey in a direct 1v1 contest. Duel win probability: 48%. The quality gap is significant (€73M vs €29M avg). Projected xG contribution: 0.422 — with neither side clearly dominant."
      },
      {
        "attacker": "Benjamin Šeško",
        "attacker_role": "ST",
        "attacker_market_value": 78000000,
        "attacker_height": 195,
        "attacker_skill_quality": 0.88,
        "defenders": [
          "Calvin Bassey",
          "Antonee Robinson"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.689,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.33,
        "xg_contribution": 0.2033,
        "shots_in_zone": 2.6,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.6,
        "aerial_duels": 3,
        "aerial_won": 2.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.6,
        "pressing_intensity_on_attacker": "MEDIUM",
        "defender_stats": [
          {
            "player": "Calvin Bassey",
            "role": "CB",
            "market_value": 29000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 1.0,
            "aerial_duels_won": 0.4,
            "defensive_success_rate": 0.67
          },
          {
            "player": "Antonee Robinson",
            "role": "CB",
            "market_value": 24000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.0,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 1.1,
            "clearances_in_zone": 0.9,
            "aerial_duels_won": 0.4,
            "defensive_success_rate": 0.67
          }
        ],
        "duel_analysis": "Benjamin Šeško (ST) faces tough defensive resistance against Calvin Bassey and Antonee Robinson in a 2-defender block. Duel win probability: 33%. The quality gap is significant (€78M vs €26M avg). Projected xG contribution: 0.203 — and is restricted in space and time on the ball."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.744,
      "away_midfield_power": 0.851,
      "home_creative_power": 0.673,
      "away_creative_power": 0.825,
      "home_defensive_power": 0.592,
      "away_defensive_power": 0.709,
      "home_dominance_ratio": 0.466,
      "home_midfield_count": 5,
      "away_midfield_count": 4,
      "home_midfield_players": [
        "Hugo Larsson",
        "Oscar Bobb",
        "Kevin",
        "Sander Berge",
        "Joshua King"
      ],
      "away_midfield_players": [
        "Kobbie Mainoo",
        "Carlos Baleba",
        "Amad Diallo",
        "Youri Tielemans"
      ],
      "possession_advantage": "neutral",
      "estimated_possession_home_pct": 48.9,
      "estimated_possession_away_pct": 51.1,
      "home_pressing_actions_per_90": 7.6,
      "away_pressing_actions_per_90": 8.3,
      "home_key_passes_projected": 5.5,
      "away_key_passes_projected": 6.4,
      "home_throughball_threat": 2.6,
      "away_throughball_threat": 3.1,
      "key_personal_duel": "Hugo Larsson vs Kobbie Mainoo",
      "midfield_lambda_factor_home": 0.991,
      "midfield_lambda_factor_away": 1.019
    },
    "formation_analysis": {
      "home_formation": "3-5-2",
      "away_formation": "3-4-2-1",
      "home_tactical_bonus": -0.02,
      "away_tactical_bonus": 0.02,
      "formation_verdict": "Tactical parity between 3-5-2 and 3-4-2-1. Match outcome driven primarily by individual player quality."
    },
    "home_lambda": 1.149,
    "away_lambda": 3.006,
    "home_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Central Mid vs Central Mid — Box-to-Box Midfield Contest"
    ],
    "away_top_threat_zones": [
      "Shadow Striker vs Centre Back — Half-Space Threat",
      "Shadow Striker vs Centre Back — Half-Space Threat"
    ],
    "home_player_antagonists": {
      "Kevin": {
        "opponents": [
          "Youri Tielemans"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Oscar Bobb": {
        "opponents": [
          "Carlos Baleba",
          "Amad Diallo"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Hugo Larsson": {
        "opponents": [
          "Carlos Baleba",
          "Kobbie Mainoo"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Sander Berge": {
        "opponents": [
          "Kobbie Mainoo",
          "Carlos Baleba"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Gonzalo García": {
        "opponents": [
          "Lisandro Martínez",
          "Leny Yoro"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Rodrigo Muniz": {
        "opponents": [
          "Lisandro Martínez",
          "Leny Yoro"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Joshua King": {
        "opponents": [
          "Carlos Baleba",
          "Amad Diallo"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "defensive_duel, midfield_pairing"
      },
      "Calvin Bassey": {
        "opponents": [
          "Matheus Cunha",
          "Bryan Mbeumo",
          "Benjamin Šeško"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "defensive_duel"
      },
      "Antonee Robinson": {
        "opponents": [
          "Benjamin Šeško"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Bernd Leno": {
        "opponents": [
          "Matheus Cunha",
          "Bryan Mbeumo"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Joachim Andersen": {
        "opponents": [
          "Matheus Cunha"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Youri Tielemans": {
        "opponents": [
          "Kevin"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Carlos Baleba": {
        "opponents": [
          "Oscar Bobb",
          "Hugo Larsson",
          "Joshua King",
          "Sander Berge"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Kobbie Mainoo": {
        "opponents": [
          "Sander Berge",
          "Hugo Larsson"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Lisandro Martínez": {
        "opponents": [
          "Gonzalo García",
          "Rodrigo Muniz"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Leny Yoro": {
        "opponents": [
          "Gonzalo García",
          "Rodrigo Muniz"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Amad Diallo": {
        "opponents": [
          "Joshua King",
          "Oscar Bobb"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Matheus Cunha": {
        "opponents": [
          "Calvin Bassey"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "attacking_duel"
      },
      "Bryan Mbeumo": {
        "opponents": [
          "Calvin Bassey"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "attacking_duel"
      },
      "Benjamin Šeško": {
        "opponents": [
          "Calvin Bassey",
          "Antonee Robinson"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Senne Lammens": {
        "opponents": [
          "Gonzalo García",
          "Rodrigo Muniz"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Ayden Heaven": {
        "opponents": [
          "Gonzalo García"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Midfield is evenly contested — Hugo Larsson vs Kobbie Mainoo will be the pivotal duel. Total antagonist xG — Home: 0.61, Away: 1.42. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Shadow Striker vs Centre Back — Half-Space Threat.",
    "lambda_factors": {
      "home_gk_opposition_factor": 0.8743,
      "away_gk_opposition_factor": 0.998,
      "home_set_piece_bonus": 0.0693,
      "away_set_piece_bonus": 0.18,
      "home_defensive_solidity_vs": 0.8944,
      "away_defensive_solidity_vs": 0.9361,
      "home_midfield_factor": 0.991,
      "away_midfield_factor": 1.019,
      "stage_discount": 1.0,
      "quality_gap_applied": true,
      "home_avg_quality": 0.6864,
      "away_avg_quality": 0.8297,
      "avg_quality_gap": -0.1433,
      "squad_value_gap_log": -0.7538,
      "top5_value_gap_log": -0.8695,
      "attack_value_gap_log": -0.8254,
      "elite_count_gap": -9,
      "combined_quality_gap": -0.3521,
      "stronger_lambda_boost": 0.1937,
      "weaker_lambda_suppression": 0.1127,
      "home_bench_lambda_bonus": 0.1007,
      "away_bench_lambda_bonus": 0.112,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "fbref_team_priors": {
        "applied": true,
        "home_squad": "Fulham",
        "away_squad": "Manchester United",
        "home_goals_per90": 1.0,
        "away_goals_against_per90": 2.5,
        "away_goals_per90": 2.0,
        "home_goals_against_per90": 1.0,
        "home_empirical_lambda": 1.852,
        "away_empirical_lambda": 1.481,
        "blending_weight": 0.192
      },
      "mismatch_score_pressure_applied": true,
      "mismatch_score_pressure_gap": -0.3521,
      "mismatch_favorite_lambda_boost": 1.093,
      "mismatch_underdog_lambda_factor": 0.9748,
      "pre_mismatch_home_lambda": 1.179,
      "pre_mismatch_away_lambda": 2.75,
      "competitive_underdog_floor_applied": false,
      "pre_calibration_home_lambda": 1.1795,
      "pre_calibration_away_lambda": 2.7497,
      "competition_calibration_applied": false,
      "competition_calibration_reason": "no_sofascore_matches_data",
      "competition_calibration_samples": 0,
      "competition_observed_total_goals": 0.0,
      "competition_calibration_scale": 1.0,
      "neutral_share_preserved": false,
      "final_home_lambda": 1.149,
      "final_away_lambda": 3.006
    }
  },
  "home_standing": {
    "available": true,
    "team_position": 19,
    "opponent_position": 11,
    "standing_lambda_multiplier": 1.3437,
    "attack_index": 1.666,
    "defense_concede_index": 1.249,
    "form_multiplier": 0.948,
    "team_attack_rate_contextual": 2.0,
    "opp_defense_rate_contextual": 1.5,
    "team_ppg": 0.0,
    "opponent_ppg": 1.33
  },
  "away_standing": {
    "available": true,
    "team_position": 11,
    "opponent_position": 19,
    "standing_lambda_multiplier": 1.6504,
    "attack_index": 1.458,
    "defense_concede_index": 2.915,
    "form_multiplier": 1.052,
    "team_attack_rate_contextual": 1.75,
    "opp_defense_rate_contextual": 3.5,
    "team_ppg": 1.33,
    "opponent_ppg": 0.0
  },
  "xgboost_reasoning": {
    "summary": "Antagonist + XGBoost match analysis for Fulham vs Man Utd. Player statistics regressed using position-specific XGBoost models (G, D, M, F) with 2026-2027 FBref priors. Micro-duels resolved across 3-5-2 vs 3-4-2-1 (duel lambdas: Home 1.179, Away 2.750). Final calibrated Poisson lambdas: Home 1.149, Away 3.006 (most likely score 1-3).",
    "competition": "Premier League",
    "model_coverage": {
      "home_starters_count": 11,
      "home_xgboost_players": 11,
      "home_fbref_players": 10,
      "away_starters_count": 11,
      "away_xgboost_players": 9,
      "away_fbref_players": 0,
      "home_bench_modelled": 7,
      "away_bench_modelled": 7
    },
    "team_priors": {
      "applied": true,
      "home_squad": "Fulham",
      "away_squad": "Manchester United",
      "home_goals_per90": 1.0,
      "away_goals_against_per90": 2.5,
      "away_goals_per90": 2.0,
      "home_goals_against_per90": 1.0,
      "home_empirical_lambda": 1.852,
      "away_empirical_lambda": 1.481,
      "blending_weight": 0.192
    },
    "pipeline_stages": [
      "1. XGBoost player regressions for volume & event rates with market-value quality scaling",
      "2. Multi-source prior blending (FBref 2026-2027 tables + Sofascore season history)",
      "3. Antagonist formation duel matrix resolving 1v1 and zonal matchups",
      "4. Team-level prior calibration (FBref possession and attack/defense efficiencies)",
      "5. Bivariate Poisson matrix with Dixon-Coles low-score correction"
    ],
    "final_lambdas": {
      "home_lambda": 1.149,
      "away_lambda": 3.006,
      "micro_duel_home_lambda": 1.179,
      "micro_duel_away_lambda": 2.75
    },
    "calibration_and_pressure": {
      "competition_calibration_applied": false,
      "competition_calibration_scale": 1.0,
      "mismatch_pressure_applied": true,
      "underdog_floor_applied": false
    }
  },
  "timestamp": "2026-09-20T13:30:36Z",
  "stat_limits": {
    "saves": 15.0,
    "goalsPrevented": 5.0,
    "keeperSaveValue": 3.0,
    "interceptionWon": 10.0,
    "totalTackle": 12.0,
    "wonTackle": 10.0,
    "totalClearance": 18.0,
    "aerialWon": 15.0,
    "totalPass": 150.0,
    "accuratePass": 145.0,
    "keyPass": 8.0,
    "expectedAssists": 1.5,
    "goalAssist": 4.0,
    "expectedGoals": 3.0,
    "goals": 5.0,
    "totalShots": 12.0,
    "onTargetScoringAttempt": 8.0,
    "rating": 10.0,
    "minutesPlayed": 95.0,
    "duelWon": 20.0,
    "ballRecovery": 18.0,
    "fouls": 8.0
  }
}