{
  "match_info": {
    "home_team": "Barcelona",
    "away_team": "Getafe",
    "tournament": "LaLiga",
    "date": "20261011",
    "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": "3-0",
    "home_goals": 3,
    "away_goals": 0,
    "most_likely_score_probability": 0.1042,
    "match_resolution": "regulation",
    "predicted_winner": "Barcelona",
    "tiebreaker": {
      "applies": false,
      "method": "none",
      "regulation_draw_probability": 0.0588,
      "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": "3-0",
        "probability": 0.1042
      },
      {
        "score": "4-0",
        "probability": 0.1027
      },
      {
        "score": "5-0",
        "probability": 0.081
      },
      {
        "score": "2-0",
        "probability": 0.0792
      },
      {
        "score": "3-1",
        "probability": 0.0677
      }
    ],
    "scoreline_probabilities": {
      "0-0": 0.0102,
      "0-1": 0.0066,
      "0-2": 0.0022,
      "1-0": 0.0401,
      "1-1": 0.0262,
      "1-2": 0.0085,
      "1-3": 0.0018,
      "2-0": 0.0792,
      "2-1": 0.0515,
      "2-2": 0.0167,
      "2-3": 0.0036,
      "2-4": 0.0006,
      "3-0": 0.1042,
      "3-1": 0.0677,
      "3-2": 0.022,
      "3-3": 0.0048,
      "3-4": 0.0008,
      "4-0": 0.1027,
      "4-1": 0.0668,
      "4-2": 0.0217,
      "4-3": 0.0047,
      "4-4": 0.0008,
      "5-0": 0.081,
      "5-1": 0.0527,
      "5-2": 0.0171,
      "5-3": 0.0037,
      "5-4": 0.0006,
      "6-0": 0.0533,
      "6-1": 0.0346,
      "6-2": 0.0113,
      "6-3": 0.0024,
      "7-0": 0.03,
      "7-1": 0.0195,
      "7-2": 0.0063,
      "7-3": 0.0014,
      "8-0": 0.0148,
      "8-1": 0.0096,
      "8-2": 0.0031,
      "8-3": 0.0007,
      "9-0": 0.0065,
      "9-1": 0.0042,
      "9-2": 0.0014
    },
    "outcome": {
      "home_win": 0.916,
      "draw": 0.0588,
      "away_win": 0.0252
    },
    "markets": {
      "over_2_5_goals": 0.8355,
      "under_2_5_goals": 0.1645,
      "btts_yes": 0.4687,
      "btts_no": 0.5313,
      "home_clean_sheet": 0.522,
      "away_clean_sheet": 0.0195
    },
    "home_ratings": {
      "DR": 6.93,
      "MCR": 7.09,
      "ATR": 6.81,
      "GK": 6.96
    },
    "away_ratings": {
      "DR": 6.65,
      "MCR": 6.83,
      "ATR": 6.83,
      "GK": 7.23
    },
    "insights": {
      "summary": "Antagonist matchup analysis for Barcelona vs Getafe. Most likely scoreline: 3-0. Lambdas derived from 6 home and 7 away individual player duels.",
      "key_player": "Projected scorer(s): Lamine Yamal, Raphinha, Anthony Gordon",
      "tactical_analysis": "Tactical parity between 3-5-2 and 3-4-2-1. Match outcome driven primarily by individual player quality. Home midfield dominates with ~54% possession expected (Lamine Yamal vs Mario Martín). Total antagonist xG — Home: 2.26, Away: 1.11. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle."
    },
    "confidence": 0.77,
    "home_lambda": 3.944,
    "away_lambda": 0.65,
    "modal_scoreline": null,
    "modal_scoreline_probability": null,
    "headline_policy": null
  },
  "pregame_baseline": {
    "fair_win_probability": {
      "home_win": 0.916,
      "draw": 0.0588,
      "away_win": 0.0252
    },
    "favorite": "Barcelona",
    "favorite_win_probability": 0.916,
    "fair_spread": 3.294,
    "fair_total": 4.594,
    "prop_estimates": [
      {
        "market": "team_total_goals",
        "selection": "Barcelona",
        "estimate": 3.944,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "team_total_goals",
        "selection": "Getafe",
        "estimate": 0.65,
        "probability": null,
        "unit": "goals"
      },
      {
        "market": "over_2_5_goals",
        "selection": "yes",
        "estimate": 2.5,
        "probability": 0.8355,
        "unit": "probability"
      },
      {
        "market": "both_teams_to_score",
        "selection": "yes",
        "estimate": 1.0,
        "probability": 0.4687,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Barcelona",
        "estimate": 1.0,
        "probability": 0.522,
        "unit": "probability"
      },
      {
        "market": "clean_sheet",
        "selection": "Getafe",
        "estimate": 1.0,
        "probability": 0.0195,
        "unit": "probability"
      },
      {
        "market": "anytime_goal",
        "selection": "Anthony Gordon (Barcelona)",
        "estimate": 0.8391,
        "probability": 0.5679,
        "unit": "xG"
      },
      {
        "market": "anytime_goal",
        "selection": "Christantus Uche (Getafe)",
        "estimate": 0.1231,
        "probability": 0.1158,
        "unit": "xG"
      },
      {
        "market": "assist",
        "selection": "Lamine Yamal (Barcelona)",
        "estimate": 0.4623,
        "probability": 0.3702,
        "unit": "xA"
      },
      {
        "market": "assist",
        "selection": "Ramón Terrats (Getafe)",
        "estimate": 0.1155,
        "probability": 0.1091,
        "unit": "xA"
      }
    ],
    "expected_pace": {
      "tempo": "high",
      "expected_total_goals": 4.594,
      "expected_total_shots": 30,
      "expected_total_passes": 752,
      "expected_pressing_actions_per_90": 15.1,
      "possession_home_pct": 54.5,
      "possession_away_pct": 45.5,
      "notes": "Barcelona projects to control midfield possession"
    },
    "expected_game_script": {
      "favorite": "Barcelona",
      "favorite_win_probability": 0.916,
      "script": "Barcelona is the fair winner side, but the baseline remains favorite-led: fair spread +3.29 goals and fair total 4.59.",
      "first_half": "Expect high tempo while both sides test the matchup thesis; shot baseline is about 15 first-half attempts.",
      "second_half": "If level after halftime, midfield control and bench quality should decide territory; Getafe must keep the match inside one goal.",
      "late_game": "A Barcelona lead likely shifts toward control and counters; a draw state keeps set pieces and transition chances live."
    },
    "key_matchup_thesis": "Barcelona chance creation leans on Anthony Gordon against Andrés García, Abdel Abqar in Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle; Barcelona projects to control midfield possession.",
    "expected_rotation_usage_behavior": [
      "Barcelona: starters carry the main goal usage through Lamine Yamal, Raphinha, Anthony Gordon; bench watchlist: Gabriel Jesus, Roony Bardghji.",
      "Getafe: starters carry the main goal usage through the highest xG attackers; bench watchlist: Borja Mayoral, Ivan Azón, Nemanja Gudelj.",
      "Assist usage should flow through Lamine Yamal, Dani Olmo; late lineup changes should re-score these allocations."
    ],
    "pregame_play_by_play": [
      "0-15: Barcelona tries to establish the projected edge; track possession and first-shot share.",
      "15-45: Baseline expects high tempo, about 15 total first-half shots, and 2.30 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 Getafe 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 Barcelona.",
      "Getafe 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": {
    "Barcelona": {
      "formation": "3-5-2",
      "players": {
        "Joan García": {
          "player_id": 930267,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 1,
          "height": 193,
          "market_value": 46000000,
          "stats": {
            "saves": 3,
            "goals_prevented": -0.1265,
            "rating": 6.9613,
            "minutes": 82,
            "total_pass": 25,
            "accurate_pass": 21,
            "duels_won": 0,
            "total_long_balls": 6,
            "accurate_long_balls": 3,
            "touches": 36,
            "clearances": 0,
            "ball_recovery": 11,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 3.278,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 22,
            "accurate_own_half_passes": 21,
            "gk_engine_opponent_lambda": 0.8057,
            "shots_faced": 6.2,
            "expected_saves": 1.52,
            "high_pressure_saves": 0.52,
            "opponent_faced": "Christantus Uche, Martín Satriano",
            "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,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 86.0
          },
          "latest_10_games": [
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 45,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0017,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 11,
                "ball_recovery": 1,
                "goals_prevented": -0.6184
              },
              "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 19,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 11,
                "saves": 4,
                "goals_prevented": 0.4648
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 14,
                "clearances": 3,
                "ball_recovery": 10,
                "saves": 2,
                "goals_prevented": 0.558
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 24,
                "ball_recovery": 13,
                "saves": 3,
                "goals_prevented": 0.2351
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 30,
                "clearances": 2,
                "ball_recovery": 15
              },
              "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": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0001,
                "total_shots": 0,
                "total_pass": 21,
                "accurate_pass": 19,
                "clearances": 1,
                "ball_recovery": 9,
                "saves": 2,
                "goals_prevented": 0.2641
              },
              "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": 123,
            "combined_rank_score": 114.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 140.0,
            "sofascore_rating": 7.34,
            "sofascore_appearances": 30.0,
            "fifa_rank": 89.0,
            "fifa_overall": 86.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9613,
            "source_file": "data/player_rankings.csv",
            "player_name": "Joan García",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Adrián de la Fuente",
                  "ranking": 118
                },
                {
                  "player_name": "Jaylan Hankins",
                  "ranking": 119
                },
                {
                  "player_name": "Marquinhos",
                  "ranking": 120
                },
                {
                  "player_name": "Jan Oblak",
                  "ranking": 121
                },
                {
                  "player_name": "Morgan Rogers",
                  "ranking": 122
                }
              ],
              "lower": [
                {
                  "player_name": "Bruno Henrique",
                  "ranking": 124
                },
                {
                  "player_name": "Jung Seung-bae",
                  "ranking": 125
                },
                {
                  "player_name": "Alexander Badolato",
                  "ranking": 126
                },
                {
                  "player_name": "João Neves",
                  "ranking": 127
                },
                {
                  "player_name": "Davron Merganov",
                  "ranking": 128
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.625,
          "history_matches": 6,
          "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": 6,
            "data_confidence": 0.625,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0927,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (G_service) evaluated 6 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.1158,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 22,
                "accurate_pass": 20,
                "duels_won": 0,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "touches": 33,
                "clearances": 0,
                "ball_recovery": 10,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 4,
                  "trained_at": "2026-09-29T10:01:45.250339+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 135,
                    "rows": 3738
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 7.2
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "save_contribution": 1.9305,
                  "goalkeeperValueNormalized": 0.1271,
                  "sweeper_actions_p90": 2.1018,
                  "possessionLostCtrl": 2.9305,
                  "accurateKeeperSweeper": 1.8609,
                  "accurateLongBalls": 2.396
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.6160292625427246,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0645
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0523
                      },
                      {
                        "name": "saves",
                        "importance": 0.0514
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0475
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0445
                      }
                    ],
                    "decomposition": {
                      "base": 2.9861,
                      "items": [
                        {
                          "name": "saves",
                          "contribution": -0.2616
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0935
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.0701
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.051
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0379
                        }
                      ],
                      "others": -0.0338,
                      "total": 2.616,
                      "log_link": true,
                      "margin_base": 1.093963,
                      "item_margins": [
                        {
                          "name": "saves",
                          "margin": -0.09167
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.034915
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.027016
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.019703
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.014404
                        }
                      ],
                      "others_margin": -0.012813
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.11581432074308395,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0582
                      },
                      {
                        "name": "punches",
                        "importance": 0.0515
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.051
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0478
                      },
                      {
                        "name": "touches",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": -0.0455,
                      "items": [
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0873
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0604
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0492
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0424
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.0368
                        }
                      ],
                      "others": -0.0536,
                      "total": -0.1158,
                      "log_link": false,
                      "margin_base": -0.045465,
                      "item_margins": [
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.087349
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.060427
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": -0.04922
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.042439
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.036846
                        }
                      ],
                      "others_margin": -0.053643
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.961266040802002,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.075
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0537
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0529
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0478
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 7.0878,
                      "items": [
                        {
                          "name": "save_contribution",
                          "contribution": -0.0623
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0548
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0547
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.049
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0431
                        }
                      ],
                      "others": -0.07,
                      "total": 6.9613,
                      "log_link": false,
                      "margin_base": 7.087778,
                      "item_margins": [
                        {
                          "name": "save_contribution",
                          "margin": -0.062263
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.054782
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.054661
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.048967
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.043058
                        }
                      ],
                      "others_margin": -0.070037
                    }
                  }
                ],
                "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": {
                "saves": 3,
                "goals_prevented": -0.1265,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 0,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.278,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21
              },
              "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": {
                "saves": 3,
                "goals_prevented": -0.1265,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 0,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.278,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21
              },
              "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.1265,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 0,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.278,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "gk_engine_opponent_lambda": 0.8057,
                "shots_faced": 7.7,
                "expected_saves": 1.89,
                "high_pressure_saves": 0.64,
                "opponent_faced": "Christantus Uche, Martín Satriano",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Christantus Uche, Martín Satriano",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 0.8057
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.1265,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 0,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.278,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "gk_engine_opponent_lambda": 0.8057,
                "shots_faced": 6.2,
                "expected_saves": 1.52,
                "high_pressure_saves": 0.52,
                "opponent_faced": "Christantus Uche, Martín Satriano",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 7.7,
                  "after": 6.2
                },
                {
                  "stat": "expected_saves",
                  "before": 1.89,
                  "after": 1.52
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 0.64,
                  "after": 0.52
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 11 by projected rating, fifa_overall 86.0; not used by the projection)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.1265,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 0,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.278,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "gk_engine_opponent_lambda": 0.8057,
                "shots_faced": 6.2,
                "expected_saves": 1.52,
                "high_pressure_saves": 0.52,
                "opponent_faced": "Christantus Uche, Martín Satriano",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 86.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 123,
                "fifa_rank": 89.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 86.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.1265,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 0,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.278,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "gk_engine_opponent_lambda": 0.8057,
                "shots_faced": 6.2,
                "expected_saves": 1.52,
                "high_pressure_saves": 0.52,
                "opponent_faced": "Christantus Uche, Martín Satriano",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 86.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.1265,
                "rating": 6.9613,
                "minutes": 82,
                "total_pass": 25,
                "accurate_pass": 21,
                "duels_won": 0,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "touches": 36,
                "clearances": 0,
                "ball_recovery": 11,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 3.278,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 22,
                "accurate_own_half_passes": 21,
                "gk_engine_opponent_lambda": 0.8057,
                "shots_faced": 6.2,
                "expected_saves": 1.52,
                "high_pressure_saves": 0.52,
                "opponent_faced": "Christantus Uche, Martín Satriano",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 86.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Pau Cubarsí": {
          "player_id": 1402913,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 5,
          "height": 184,
          "market_value": 94000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 5,
            "aerial_won": 2,
            "total_shots": 1,
            "rating": 7.1275,
            "minutes": 84,
            "total_pass": 108,
            "accurate_pass": 102,
            "duels_won": 5,
            "total_long_balls": 6,
            "accurate_long_balls": 0,
            "total_own_half_passes": 64,
            "accurate_own_half_passes": 62,
            "total_opp_half_passes": 44,
            "accurate_opp_half_passes": 40,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 121,
            "possession_lost": 7.5976,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.045,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 39,
            "total_progression": 163,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "tackles_in_zone": 2.3,
            "tackles_won_in_zone": 2.0,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.704,
            "opponent_faced": "Martín Satriano",
            "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.044,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 86.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0145,
                "expected_assists": 0.0155,
                "total_shots": 1,
                "total_pass": 97,
                "accurate_pass": 90,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 5,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_type": "played",
              "match_id": "16416346.0",
              "match_date": "2026-09-16 19:30:00 UTC",
              "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",
              "home_team": "Barcelona",
              "away_team": "Racing Club",
              "home_score_current": 7.0,
              "away_score_current": 2.0,
              "team_side": "home",
              "status_code": "100",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Barcelona",
              "opponent": "Racing Club",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0195,
                "total_shots": 0,
                "total_pass": 114,
                "accurate_pass": 109,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 6,
                "aerial_won": 5,
                "duels_won": 7,
                "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"
            },
            {
              "match_id": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 62,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0194,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 55,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0642,
                "expected_assists": 0.023,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 110,
                "accurate_pass": 100,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 6,
                "aerial_won": 3,
                "duels_won": 5,
                "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 8.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3941,
                "expected_assists": 0.0375,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 107,
                "accurate_pass": 102,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5
              },
              "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": 57,
            "combined_rank_score": 69.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 62.0,
            "sofascore_rating": 7.65,
            "sofascore_appearances": 2.0,
            "fifa_rank": 76.0,
            "fifa_overall": 86.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1275,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pau Cubarsí",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Matheus Frizzo",
                  "ranking": 52
                },
                {
                  "player_name": "Florian Wirtz",
                  "ranking": 53
                },
                {
                  "player_name": "Martín Zubimendi",
                  "ranking": 54
                },
                {
                  "player_name": "Luan Dias",
                  "ranking": 55
                },
                {
                  "player_name": "César Yanis",
                  "ranking": 56
                }
              ],
              "lower": [
                {
                  "player_name": "Declan Rice",
                  "ranking": 58
                },
                {
                  "player_name": "Frenkie de Jong",
                  "ranking": 59
                },
                {
                  "player_name": "Lucas Paquetá",
                  "ranking": 60
                },
                {
                  "player_name": "Rúben Dias",
                  "ranking": 61
                },
                {
                  "player_name": "Luis Díaz",
                  "ranking": 62
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.562,
          "history_matches": 5,
          "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": 5,
            "data_confidence": 0.562,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1173,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 5 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": 4,
                "aerial_won": 2,
                "total_shots": 0,
                "rating": 7.1275,
                "minutes": 84,
                "total_pass": 97,
                "accurate_pass": 91,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 57,
                "accurate_own_half_passes": 55,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 36,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 108,
                "possession_lost": 6.8,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 35,
                "total_progression": 146,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 8.0
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 4.1844,
                  "defensive_actions": 2.5492,
                  "wonTackle": 0.9055,
                  "totalTackle_p90": 1.3539,
                  "totalClearance_p90": 4.4483,
                  "aerialWon": 3.4673
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.1708827018737793,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.1022
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": 0.0743
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0253
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0123
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0117
                        }
                      ],
                      "others": 0.0417,
                      "total": 1.1709,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.10716
                        },
                        {
                          "name": "interceptionWon",
                          "margin": 0.071324
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.023128
                        },
                        {
                          "name": "touches",
                          "margin": 0.011093
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.0104
                        }
                      ],
                      "others_margin": 0.036284
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1633604764938354,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.057
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0512
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0318
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.031
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0114
                        }
                      ],
                      "others": -0.0491,
                      "total": 1.1634,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.04376
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.041005
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.025658
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.025009
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.009387
                        }
                      ],
                      "others_margin": -0.04135
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6586487889289856,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1446
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0172
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0141
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0105
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0089
                        }
                      ],
                      "others": -0.0061,
                      "total": 0.6586,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.192601
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.024922
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.020404
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.015417
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.013361
                        }
                      ],
                      "others_margin": -0.009092
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 4.246329307556152,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.3327
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1382
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.1003
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0935
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.056
                        }
                      ],
                      "others": 0.138,
                      "total": 4.2463,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": 0.093692
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.036467
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.025651
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.023351
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.013734
                        }
                      ],
                      "others_margin": 0.033039
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 2.1026012897491455,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": 0.4475
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1112
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0886
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.072
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0687
                        }
                      ],
                      "others": 0.045,
                      "total": 2.1026,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": 0.301928
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.06275
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.047329
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.036896
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.033968
                        }
                      ],
                      "others_margin": 0.021587
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.448542058467865,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "duelLost",
                          "contribution": -0.0166
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0161
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0145
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0145
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0136
                        }
                      ],
                      "others": -0.0116,
                      "total": 0.4485,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "duelLost",
                          "margin": -0.016613
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.016137
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.01452
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.014519
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.01359
                        }
                      ],
                      "others_margin": -0.011579
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.1275177001953125,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1185
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0452
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0393
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0387
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0235
                        }
                      ],
                      "others": 0.1045,
                      "total": 7.1275,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.118496
                        },
                        {
                          "name": "touches",
                          "margin": 0.045163
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.039288
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.038743
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.023503
                        }
                      ],
                      "others_margin": 0.104534
                    }
                  }
                ],
                "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.1173, quality 0.891)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1275,
                "minutes": 84,
                "total_pass": 108,
                "accurate_pass": 102,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 64,
                "accurate_own_half_passes": 62,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 121,
                "possession_lost": 7.5976,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0223,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 39,
                "total_progression": 163,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 94000000,
                "quality_factor": 0.891,
                "boost_factor": 1.1173
              }
            },
            {
              "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.1275,
                "minutes": 84,
                "total_pass": 108,
                "accurate_pass": 102,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 64,
                "accurate_own_half_passes": 62,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 121,
                "possession_lost": 7.5976,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0223,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 39,
                "total_progression": 163,
                "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.1275,
                "minutes": 84,
                "total_pass": 108,
                "accurate_pass": 102,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 64,
                "accurate_own_half_passes": 62,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 121,
                "possession_lost": 7.5976,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0223,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 39,
                "total_progression": 163,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.0,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.704,
                "opponent_faced": "Martín Satriano",
                "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": "Martín Satriano",
                  "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 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1275,
                "minutes": 84,
                "total_pass": 108,
                "accurate_pass": 102,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 64,
                "accurate_own_half_passes": 62,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 121,
                "possession_lost": 7.5976,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.045,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 39,
                "total_progression": 163,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.0,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.704,
                "opponent_faced": "Martín Satriano",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.0223,
                  "after": 0.045
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 4 by projected rating, fifa_overall 86.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1275,
                "minutes": 84,
                "total_pass": 108,
                "accurate_pass": 102,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 64,
                "accurate_own_half_passes": 62,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 121,
                "possession_lost": 7.5976,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.045,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 39,
                "total_progression": 163,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.0,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.704,
                "opponent_faced": "Martín Satriano",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 86.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 57,
                "fifa_rank": 76.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 86.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1275,
                "minutes": 84,
                "total_pass": 108,
                "accurate_pass": 102,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 64,
                "accurate_own_half_passes": 62,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 121,
                "possession_lost": 7.5976,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.045,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 39,
                "total_progression": 163,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.0,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.704,
                "opponent_faced": "Martín Satriano",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 86.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0003,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 5,
                "aerial_won": 2,
                "total_shots": 1,
                "rating": 7.1275,
                "minutes": 84,
                "total_pass": 108,
                "accurate_pass": 102,
                "duels_won": 5,
                "total_long_balls": 6,
                "accurate_long_balls": 0,
                "total_own_half_passes": 64,
                "accurate_own_half_passes": 62,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 121,
                "possession_lost": 7.5976,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.045,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 39,
                "total_progression": 163,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 2.3,
                "tackles_won_in_zone": 2.0,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 0.5,
                "aerial_duels_won": 0.8,
                "defensive_success_rate": 0.704,
                "opponent_faced": "Martín Satriano",
                "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.044,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 86.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.044,
                "provider_weight": 0.036,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0156,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Jules Koundé": {
          "player_id": 827212,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 23,
          "height": 180,
          "market_value": 64000000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 3,
            "aerial_won": 1,
            "total_shots": 1,
            "rating": 6.8453,
            "minutes": 43,
            "total_pass": 48,
            "accurate_pass": 45,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 21,
            "accurate_own_half_passes": 21,
            "total_opp_half_passes": 27,
            "accurate_opp_half_passes": 24,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 60,
            "possession_lost": 5.5413,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0448,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 18,
            "total_progression": 78,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 1,
            "tackles_in_zone": 1.1,
            "tackles_won_in_zone": 1.1,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 1.2,
            "aerial_duels_won": 0.5,
            "defensive_success_rate": 0.82,
            "opponent_faced": "Christantus Uche",
            "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.0438,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 85.0
          },
          "latest_10_games": [
            {
              "match_id": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 61,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0401,
                "total_shots": 0,
                "total_pass": 78,
                "accurate_pass": 75,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0297,
                "total_shots": 0,
                "total_pass": 72,
                "accurate_pass": 66,
                "key_pass": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 4,
                "ball_recovery": 2
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 10,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 9,
                "accurate_pass": 8,
                "clearances": 1
              },
              "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": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 10,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0022,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 14,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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": 540,
            "combined_rank_score": 301.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 444.0,
            "sofascore_rating": 6.9033,
            "sofascore_appearances": 30.0,
            "fifa_rank": 159.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8453,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jules Koundé",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Evan Ndicka",
                  "ranking": 535
                },
                {
                  "player_name": "Gabriel Lima",
                  "ranking": 536
                },
                {
                  "player_name": "Eder Aller",
                  "ranking": 537
                },
                {
                  "player_name": "Rafael Leão",
                  "ranking": 538
                },
                {
                  "player_name": "Mattia Zaccagni",
                  "ranking": 539
                }
              ],
              "lower": [
                {
                  "player_name": "Rafa Romero",
                  "ranking": 541
                },
                {
                  "player_name": "Alisher Odilov",
                  "ranking": 542
                },
                {
                  "player_name": "Hyeok-chan Son",
                  "ranking": 543
                },
                {
                  "player_name": "Min-ho Yoon",
                  "ranking": 544
                },
                {
                  "player_name": "Akmal Muzaffarov",
                  "ranking": 545
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "history_matches": 4,
          "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": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1083,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (D_service) evaluated 4 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.8453,
                "minutes": 43,
                "total_pass": 44,
                "accurate_pass": 41,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 19,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 24,
                "accurate_opp_half_passes": 22,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 54,
                "possession_lost": 5.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 70,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 61.0,
                    "is_starting": false,
                    "weight": 0.3138,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.2267,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.6075,
                  "defensive_actions": 0.6276,
                  "wonTackle": 0.3138,
                  "totalTackle_p90": 0.463,
                  "totalClearance_p90": 3.5705,
                  "aerialWon": 0.7262
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6811969876289368,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.1251
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0915
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0217
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0199
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0132
                        }
                      ],
                      "others": -0.0206,
                      "total": 0.6812,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.149033
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.125023
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.03111
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.028541
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.019037
                        }
                      ],
                      "others_margin": -0.029822
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1242648363113403,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.1504
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.044
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0345
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0262
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0251
                        }
                      ],
                      "others": 0.023,
                      "total": 1.1243,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.119864
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.037947
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.030793
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.024094
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.023093
                        }
                      ],
                      "others_margin": 0.02057
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6993194222450256,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1455
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0329
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0234
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0229
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0185
                        }
                      ],
                      "others": -0.0127,
                      "total": 0.6993,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.193862
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.049511
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.035557
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.033608
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.026274
                        }
                      ],
                      "others_margin": -0.018101
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.525810480117798,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.7463
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1941
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0881
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0639
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0527
                        }
                      ],
                      "others": 0.1779,
                      "total": 2.5258,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.248868
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.076314
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.036651
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.027459
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.022697
                        }
                      ],
                      "others_margin": 0.073035
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.5315548777580261,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.637
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0702
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0231
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.023
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0223
                        }
                      ],
                      "others": -0.0084,
                      "total": 0.5316,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.696653
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.11761
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.041916
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.041718
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.040461
                        }
                      ],
                      "others_margin": -0.015745
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4625,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0534
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0357
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0334
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0163
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0127
                        }
                      ],
                      "others": -0.0328,
                      "total": 0.4625,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": -0.053414
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.035663
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.033402
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.016255
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.012666
                        }
                      ],
                      "others_margin": -0.032793
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.845254421234131,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0324
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0201
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0173
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0157
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.015
                        }
                      ],
                      "others": 0.0272,
                      "total": 6.8453,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.03236
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.020057
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.017312
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.015747
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.015028
                        }
                      ],
                      "others_margin": 0.027075
                    }
                  }
                ],
                "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.1083, quality 0.861)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8453,
                "minutes": 43,
                "total_pass": 48,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.5413,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0222,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 78,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 64000000,
                "quality_factor": 0.8608,
                "boost_factor": 1.1083
              }
            },
            {
              "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": 1,
                "rating": 6.8453,
                "minutes": 43,
                "total_pass": 48,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.5413,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0222,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 78,
                "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": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8453,
                "minutes": 43,
                "total_pass": 48,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.5413,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0222,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 78,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.5,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Christantus Uche",
                "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": "Christantus Uche",
                  "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.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8453,
                "minutes": 43,
                "total_pass": 48,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.5413,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0448,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 78,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.5,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Christantus Uche",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.0222,
                  "after": 0.0448
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 14 by projected rating, fifa_overall 85.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8453,
                "minutes": 43,
                "total_pass": 48,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.5413,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0448,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 78,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.5,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Christantus Uche",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 85.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 540,
                "fifa_rank": 159.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 85.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8453,
                "minutes": 43,
                "total_pass": 48,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.5413,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0448,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 78,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.5,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Christantus Uche",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0003,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 1,
                "rating": 6.8453,
                "minutes": 43,
                "total_pass": 48,
                "accurate_pass": 45,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 21,
                "total_opp_half_passes": 27,
                "accurate_opp_half_passes": 24,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 60,
                "possession_lost": 5.5413,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0448,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 78,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 1,
                "tackles_in_zone": 1.1,
                "tackles_won_in_zone": 1.1,
                "interceptions_in_zone": 1.4,
                "clearances_in_zone": 1.2,
                "aerial_duels_won": 0.5,
                "defensive_success_rate": 0.82,
                "opponent_faced": "Christantus Uche",
                "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.0438,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 85.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0438,
                "provider_weight": 0.0358,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0155,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 10,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Alejandro Balde": {
          "player_id": 997035,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 3,
          "height": 177,
          "market_value": 55000000,
          "stats": {
            "interceptions": 0,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 1,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.8166,
            "minutes": 12,
            "total_pass": 14,
            "accurate_pass": 12,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 4,
            "accurate_own_half_passes": 4,
            "total_opp_half_passes": 10,
            "accurate_opp_half_passes": 8,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 21,
            "possession_lost": 2.2039,
            "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": 1,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.2224,
            "shots_on_target": 0,
            "big_chances_created": 1,
            "xgot": 0.0,
            "ball_carries": 4,
            "total_progression": 69,
            "progressive_carries": 2,
            "key_pass": 1,
            "shots_off_target": 0,
            "opponent_faced": "Christantus Uche",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.1994,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 12,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0954,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 11,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 1817,
            "combined_rank_score": 965.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 700.0,
            "sofascore_rating": 6.6963,
            "sofascore_appearances": 28.0,
            "fifa_rank": 1231.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8166,
            "source_file": "data/player_rankings.csv",
            "player_name": "Alejandro Balde",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Nail Omerović",
                  "ranking": 1812
                },
                {
                  "player_name": "Elhan Kastrati",
                  "ranking": 1813
                },
                {
                  "player_name": "Jae-hun Cho",
                  "ranking": 1814
                },
                {
                  "player_name": "Abulfayz Bobomurodov",
                  "ranking": 1815
                },
                {
                  "player_name": "Alejandro Rego Mora",
                  "ranking": 1816
                }
              ],
              "lower": [
                {
                  "player_name": "José Luis Morales",
                  "ranking": 1818
                },
                {
                  "player_name": "Guido Rodríguez",
                  "ranking": 1819
                },
                {
                  "player_name": "Wesley Fofana",
                  "ranking": 1820
                },
                {
                  "player_name": "Marten de Roon",
                  "ranking": 1821
                },
                {
                  "player_name": "Florentino Luís",
                  "ranking": 1822
                }
              ]
            }
          },
          "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.102,
            "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": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 13,
                "accurate_pass": 11,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 19,
                "possession_lost": 2.0,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 62,
                "progressive_carries": 2,
                "key_pass": 1,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 12.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 0.0,
                  "defensive_actions": 2.0,
                  "wonTackle": 1.0,
                  "totalTackle_p90": 15.0,
                  "totalClearance_p90": 0.0,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.41734403371810913,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.2411
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.1513
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0765
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0098
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0059
                        }
                      ],
                      "others": -0.0211,
                      "total": 0.4173,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.31046
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.259328
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.162208
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.022401
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.013341
                        }
                      ],
                      "others_margin": -0.049277
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.3028570413589478,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1986
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.1012
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0628
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0494
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0324
                        }
                      ],
                      "others": 0.0188,
                      "total": 1.3029,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.139033
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.068418
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.044924
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.036808
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.024881
                        }
                      ],
                      "others_margin": 0.014392
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.779758632183075,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "history_matches",
                          "contribution": 0.0468
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0356
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0295
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0223
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0204
                        }
                      ],
                      "others": -0.0294,
                      "total": 0.7798,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "history_matches",
                          "margin": 0.055122
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.041611
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.035929
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.027238
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.024914
                        }
                      ],
                      "others_margin": -0.037064
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.0927964448928833,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -1.2388
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.4531
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.2135
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1029
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0587
                        }
                      ],
                      "others": -0.2278,
                      "total": 1.0928,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.455228
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.236826
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.134599
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.071946
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.043484
                        }
                      ],
                      "others_margin": -0.189299
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.4513185918331146,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.6898
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0604
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0471
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0447
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0232
                        }
                      ],
                      "others": -0.0425,
                      "total": 0.4513,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.783739
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.110044
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.095072
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.090503
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.04581
                        }
                      ],
                      "others_margin": -0.090138
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.42574283480644226,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0603
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0247
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0214
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.021
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0183
                        }
                      ],
                      "others": -0.026,
                      "total": 0.4257,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": -0.06027
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.024685
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.021381
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.021002
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.018326
                        }
                      ],
                      "others_margin": -0.026056
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.816586971282959,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0817
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0413
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0306
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0129
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.011
                        }
                      ],
                      "others": -0.0355,
                      "total": 6.8166,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.081693
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.041315
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.030621
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.012862
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.010965
                        }
                      ],
                      "others_margin": -0.035486
                    }
                  }
                ],
                "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.1020, quality 0.840)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.2039,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1102,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 69,
                "progressive_carries": 2,
                "key_pass": 1,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 55000000,
                "quality_factor": 0.8399,
                "boost_factor": 1.102
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.2039,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1102,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 69,
                "progressive_carries": 2,
                "key_pass": 1,
                "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": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.2039,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.1102,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 69,
                "progressive_carries": 2,
                "key_pass": 1,
                "shots_off_target": 0,
                "opponent_faced": "Christantus Uche",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Christantus Uche",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.2039,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2224,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 69,
                "progressive_carries": 2,
                "key_pass": 1,
                "shots_off_target": 0,
                "opponent_faced": "Christantus Uche",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.1102,
                  "after": 0.2224
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 16 by projected rating, fifa_overall 78.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.2039,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2224,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 69,
                "progressive_carries": 2,
                "key_pass": 1,
                "shots_off_target": 0,
                "opponent_faced": "Christantus Uche",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1817,
                "fifa_rank": 1231.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.2039,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2224,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 69,
                "progressive_carries": 2,
                "key_pass": 1,
                "shots_off_target": 0,
                "opponent_faced": "Christantus Uche",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0003,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "interceptions": 0,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.8166,
                "minutes": 12,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 4,
                "accurate_own_half_passes": 4,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 2.2039,
                "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": 1,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.2224,
                "shots_on_target": 0,
                "big_chances_created": 1,
                "xgot": 0.0,
                "ball_carries": 4,
                "total_progression": 69,
                "progressive_carries": 2,
                "key_pass": 1,
                "shots_off_target": 0,
                "opponent_faced": "Christantus Uche",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.1994,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.1994,
                "provider_weight": 0.1779,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0771,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Lamine Yamal": {
          "player_id": 1402912,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 10,
          "height": 183,
          "market_value": 237000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.4623,
            "assist_rate": 0.1697,
            "assists": 1,
            "expected_goals": 0.6147,
            "goal_rate": 0.5839,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 4,
            "rating": 7.124,
            "minutes": 83,
            "total_pass": 55,
            "accurate_pass": 45,
            "duels_won": 7,
            "total_long_balls": 2,
            "accurate_long_balls": 0,
            "total_own_half_passes": 10,
            "accurate_own_half_passes": 9,
            "total_opp_half_passes": 45,
            "accurate_opp_half_passes": 35,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 84,
            "possession_lost": 20.7984,
            "dispossessed": 0.0,
            "duels_lost": 7,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 0,
            "clearances": 0,
            "total_contest": 8,
            "won_contest": 5,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 29,
            "total_progression": 155,
            "progressive_carries": 8,
            "shots_off_target": 3,
            "duel_xg_multiplier": 1.2705,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.6,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.604,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Mario Martín",
            "opponent_faced": "Mario Martín",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 1,
            "goal_probability": 0.4592,
            "projected_assists": 1,
            "assist_probability": 0.3702,
            "finishing_factor": 1.25,
            "creation_factor": 0.8,
            "fifa_overall": 90.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 8.3,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.2641,
                "expected_assists": 0.5755,
                "total_shots": 5,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 52,
                "accurate_pass": 44,
                "key_pass": 6,
                "duels_won": 7,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 9.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 1.6645,
                "expected_assists": 0.3084,
                "total_shots": 7,
                "shots_on_target": 2,
                "shots_off_target": 3,
                "total_pass": 53,
                "accurate_pass": 42,
                "key_pass": 3,
                "duels_won": 9,
                "ball_recovery": 1
              },
              "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 66,
                "rating": 8.4,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.6035,
                "expected_assists": 0.0385,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 36,
                "accurate_pass": 30,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 5,
                "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 8.9,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.1231,
                "expected_assists": 0.3021,
                "total_shots": 8,
                "shots_on_target": 4,
                "shots_off_target": 3,
                "total_pass": 79,
                "accurate_pass": 66,
                "key_pass": 6,
                "duels_won": 4,
                "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 90,
                "rating": 10.0,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.327,
                "expected_assists": 0.5343,
                "total_shots": 6,
                "shots_on_target": 2,
                "shots_off_target": 2,
                "total_pass": 40,
                "accurate_pass": 30,
                "key_pass": 7,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 12,
                "ball_recovery": 2
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.8933,
                "expected_assists": 0.7456,
                "total_shots": 7,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 55,
                "accurate_pass": 45,
                "key_pass": 5,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "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": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 65,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2063,
                "expected_assists": 0.1498,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 29,
                "accurate_pass": 22,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "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": 1,
            "combined_rank_score": 5.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 7.0,
            "sofascore_rating": 8.65,
            "sofascore_appearances": 2.0,
            "fifa_rank": 4.0,
            "fifa_overall": 90.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.124,
            "source_file": "data/player_rankings.csv",
            "player_name": "Lamine Yamal",
            "ranking_neighbors": {
              "upper": [],
              "lower": [
                {
                  "player_name": "Kylian Mbappé",
                  "ranking": 2
                },
                {
                  "player_name": "Erling Haaland",
                  "ranking": 3
                },
                {
                  "player_name": "Mariano Díaz",
                  "ranking": 4
                },
                {
                  "player_name": "Jude Bellingham",
                  "ranking": 5
                },
                {
                  "player_name": "Pedri",
                  "ranking": 6
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.688,
          "history_matches": 7,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.688,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.12,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2045,
                "assist_rate": 0.1515,
                "assists": 0,
                "expected_goals": 0.283,
                "goal_rate": 0.4103,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 49,
                "accurate_pass": 40,
                "duels_won": 6,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 40,
                "accurate_opp_half_passes": 32,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 75,
                "possession_lost": 18.57,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 7,
                "won_contest": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 139,
                "progressive_carries": 7,
                "shots_off_target": 2
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 8.3
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 9.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 8.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 8.9
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 10.0
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 5.5244,
                  "expectedAssists": 0.3791,
                  "creative_index": 1.8598,
                  "creative_efficiency": 0.0832,
                  "shotValueNormalized": 0.1526,
                  "dribbleValueNormalized": 0.5294
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 2.17209792137146,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.281
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.2887
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1361
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0822
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0567
                        }
                      ],
                      "others": 0.4007,
                      "total": 2.1721,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.264866
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.214351
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.08706
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.04912
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.032534
                        }
                      ],
                      "others_margin": 0.20391
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.20448991656303406,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0517
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0087
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0059
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0051
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": 0.0051
                        }
                      ],
                      "others": 0.0408,
                      "total": 0.2045,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.465266
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.060657
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.039384
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.032865
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": 0.031634
                        }
                      ],
                      "others_margin": 0.222151
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.15154485404491425,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0306
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0057
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": 0.0044
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0039
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0038
                        }
                      ],
                      "others": 0.018,
                      "total": 0.1515,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.307101
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.047704
                        },
                        {
                          "name": "cross_accuracy",
                          "margin": 0.035896
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.030206
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.028896
                        }
                      ],
                      "others_margin": 0.126766
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.28301936388015747,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0531
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0197
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0108
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0106
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0097
                        }
                      ],
                      "others": -0.0035,
                      "total": 0.283,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.255267
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.080146
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.041238
                        },
                        {
                          "name": "intensity_index",
                          "margin": 0.039044
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.034415
                        }
                      ],
                      "others_margin": -0.012041
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.4103231728076935,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0425
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0362
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0374
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0262
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0257
                        }
                      ],
                      "others": 0.0944,
                      "total": 0.4103,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.252838
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.17417
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.152606
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.094713
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.08488
                        }
                      ],
                      "others_margin": 0.261149
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7040778398513794,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.1631
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0705
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0339
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0332
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0286
                        }
                      ],
                      "others": 0.1038,
                      "total": 0.7041,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.394243
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.131711
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.057621
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.056395
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.04883
                        }
                      ],
                      "others_margin": 0.159519
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.9329778398513793,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 1.0186
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.3374
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.1024
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0775
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0734
                        }
                      ],
                      "others": 0.2856,
                      "total": 2.933,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 1.01863
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.337417
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.102366
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.0775
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.073436
                        }
                      ],
                      "others_margin": 0.285547
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.124049663543701,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0506
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0411
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0305
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0243
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0232
                        }
                      ],
                      "others": 0.0945,
                      "total": 7.124,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.050627
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.041093
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.030525
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.024323
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.023158
                        }
                      ],
                      "others_margin": 0.094567
                    }
                  }
                ],
                "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.1200, quality 0.900)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.229,
                "assist_rate": 0.1697,
                "assists": 0,
                "expected_goals": 0.317,
                "goal_rate": 0.4596,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 55,
                "accurate_pass": 45,
                "duels_won": 7,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 20.7984,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 8,
                "won_contest": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 155,
                "progressive_carries": 8,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 237000000,
                "quality_factor": 0.9,
                "boost_factor": 1.12
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.229,
                "assist_rate": 0.1697,
                "assists": 0,
                "expected_goals": 0.317,
                "goal_rate": 0.4596,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 55,
                "accurate_pass": 45,
                "duels_won": 7,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 20.7984,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 8,
                "won_contest": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 155,
                "progressive_carries": 8,
                "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": {
                "key_pass": 2,
                "expected_assists": 0.229,
                "assist_rate": 0.1697,
                "assists": 0,
                "expected_goals": 0.4027,
                "goal_rate": 0.5839,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 4,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 55,
                "accurate_pass": 45,
                "duels_won": 7,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 20.7984,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 8,
                "won_contest": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 155,
                "progressive_carries": 8,
                "shots_off_target": 3,
                "duel_xg_multiplier": 1.2705,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.604,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mario Martín",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.604,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.2705,
                  "skill_edge": 0.16,
                  "height_edge": 0.024,
                  "attacker_skill": 0.9,
                  "defender_skill": 0.5444,
                  "xg_override": 0.4027
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.1
                },
                {
                  "stat": "totalShots",
                  "before": 3.285,
                  "after": 4.1736
                },
                {
                  "stat": "shotOffTarget",
                  "before": 2.4964,
                  "after": 3.1717
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7886,
                  "after": 1.0019
                },
                {
                  "stat": "goals",
                  "before": 0.4596,
                  "after": 0.5839
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.317,
                  "after": 0.4027
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4623,
                "assist_rate": 0.1697,
                "assists": 0,
                "expected_goals": 0.6147,
                "goal_rate": 0.5839,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 4,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 55,
                "accurate_pass": 45,
                "duels_won": 7,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 20.7984,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 8,
                "won_contest": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 155,
                "progressive_carries": 8,
                "shots_off_target": 3,
                "duel_xg_multiplier": 1.2705,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.604,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.4027,
                  "after": 0.6147
                },
                {
                  "stat": "expected_assists",
                  "before": 0.229,
                  "after": 0.4623
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 5 by projected rating, fifa_overall 90.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4623,
                "assist_rate": 0.1697,
                "assists": 0,
                "expected_goals": 0.6147,
                "goal_rate": 0.5839,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 4,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 55,
                "accurate_pass": 45,
                "duels_won": 7,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 20.7984,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 8,
                "won_contest": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 155,
                "progressive_carries": 8,
                "shots_off_target": 3,
                "duel_xg_multiplier": 1.2705,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.604,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 90.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1,
                "fifa_rank": 4.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 90.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4623,
                "assist_rate": 0.1697,
                "assists": 0,
                "expected_goals": 0.6147,
                "goal_rate": 0.5839,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 4,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 55,
                "accurate_pass": 45,
                "duels_won": 7,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 20.7984,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 8,
                "won_contest": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 155,
                "progressive_carries": 8,
                "shots_off_target": 3,
                "duel_xg_multiplier": 1.2705,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.604,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 1,
                "goal_probability": 0.4592,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.4592,
                "scorer_weight": 0.7684,
                "squad_weight_total": 3.8932,
                "weight_share": 0.1974,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4623,
                "assist_rate": 0.1697,
                "assists": 1,
                "expected_goals": 0.6147,
                "goal_rate": 0.5839,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 4,
                "rating": 7.124,
                "minutes": 83,
                "total_pass": 55,
                "accurate_pass": 45,
                "duels_won": 7,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 10,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 35,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 84,
                "possession_lost": 20.7984,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 0,
                "total_contest": 8,
                "won_contest": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 29,
                "total_progression": 155,
                "progressive_carries": 8,
                "shots_off_target": 3,
                "duel_xg_multiplier": 1.2705,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.604,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 1,
                "goal_probability": 0.4592,
                "projected_assists": 1,
                "assist_probability": 0.3702,
                "finishing_factor": 1.25,
                "creation_factor": 0.8,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 1,
                "assist_probability": 0.3702,
                "provider_weight": 0.3698,
                "squad_weight_total": 2.3091,
                "weight_share": 0.1602,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Pedri": {
          "player_id": 992587,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 8,
          "height": 174,
          "market_value": 164000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.3084,
            "assist_rate": 0.1075,
            "assists": 0,
            "expected_goals": 0.2789,
            "goal_rate": 0.1661,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 7.118,
            "minutes": 72,
            "total_pass": 68,
            "accurate_pass": 63,
            "duels_won": 4,
            "total_long_balls": 3,
            "accurate_long_balls": 3,
            "total_own_half_passes": 24,
            "accurate_own_half_passes": 23,
            "total_opp_half_passes": 44,
            "accurate_opp_half_passes": 40,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 81,
            "possession_lost": 8.8026,
            "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,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 28,
            "total_progression": 88,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.2175,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.5,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.568,
            "pressing_faced": "LOW",
            "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
            "numerical_situation": "1v1",
            "opponent_defenders": "Mario Martín",
            "opponent_faced": "Mario Martín",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.2434,
            "projected_assists": 0,
            "assist_probability": 0.2654,
            "finishing_factor": 0.9287,
            "creation_factor": 0.8,
            "fifa_overall": 90.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 86,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1555,
                "expected_assists": 0.063,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 66,
                "accurate_pass": 60,
                "key_pass": 4,
                "tackles": 2,
                "tackles_won": 2,
                "duels_won": 3,
                "ball_recovery": 9
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 61,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.4025,
                "total_shots": 0,
                "total_pass": 50,
                "accurate_pass": 48,
                "key_pass": 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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 66,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1863,
                "total_shots": 0,
                "total_pass": 63,
                "accurate_pass": 53,
                "tackles": 1,
                "clearances": 2,
                "duels_won": 3,
                "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 81,
                "rating": 8.2,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.297,
                "expected_assists": 0.112,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 72,
                "accurate_pass": 69,
                "tackles": 3,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 8
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 77,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0773,
                "expected_assists": 0.1121,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 72,
                "accurate_pass": 68,
                "key_pass": 2,
                "duels_won": 3,
                "ball_recovery": 8
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 85,
                "rating": 8.0,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_assists": 0.4608,
                "total_shots": 0,
                "total_pass": 54,
                "accurate_pass": 52,
                "key_pass": 3,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 4,
                "ball_recovery": 3
              },
              "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": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 46,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1668,
                "total_shots": 0,
                "total_pass": 46,
                "accurate_pass": 41,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "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": 6,
            "combined_rank_score": 12.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 12.0,
            "sofascore_rating": 8.425,
            "sofascore_appearances": 4.0,
            "fifa_rank": 12.0,
            "fifa_overall": 90.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.118,
            "source_file": "data/player_rankings.csv",
            "player_name": "Pedri",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Lamine Yamal",
                  "ranking": 1
                },
                {
                  "player_name": "Kylian Mbappé",
                  "ranking": 2
                },
                {
                  "player_name": "Erling Haaland",
                  "ranking": 3
                },
                {
                  "player_name": "Mariano Díaz",
                  "ranking": 4
                },
                {
                  "player_name": "Jude Bellingham",
                  "ranking": 5
                }
              ],
              "lower": [
                {
                  "player_name": "Ryu Won-Woo",
                  "ranking": 7
                },
                {
                  "player_name": "Bruno Fernandes",
                  "ranking": 8
                },
                {
                  "player_name": "Felix Horn Myhre",
                  "ranking": 9
                },
                {
                  "player_name": "Raphinha",
                  "ranking": 10
                },
                {
                  "player_name": "Vini Jr.",
                  "ranking": 11
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.688,
          "history_matches": 7,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.688,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1199,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1364,
                "assist_rate": 0.096,
                "assists": 0,
                "expected_goals": 0.134,
                "goal_rate": 0.1218,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 60,
                "accurate_pass": 56,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 2,
                "total_own_half_passes": 21,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 39,
                "accurate_opp_half_passes": 36,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 72,
                "possession_lost": 7.86,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 25,
                "total_progression": 78,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 46.0,
                    "is_starting": false,
                    "weight": 0.0833,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.9432,
                  "expectedAssists": 0.2063,
                  "creative_index": 1.0954,
                  "creative_efficiency": 0.054,
                  "shotValueNormalized": -0.0789,
                  "dribbleValueNormalized": 0.2681
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.5336172580718994,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.1572
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.1838
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.1122
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0483
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.036
                        }
                      ],
                      "others": 0.0694,
                      "total": 1.5336,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.156713
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.156637
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.084771
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.034438
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.024899
                        }
                      ],
                      "others_margin": 0.046318
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.13640664517879486,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0287
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0046
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0048
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0047
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0042
                        }
                      ],
                      "others": 0.0106,
                      "total": 0.1364,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.284756
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.039156
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.039156
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.03698
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.032838
                        }
                      ],
                      "others_margin": 0.079866
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.0960024893283844,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0079
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0061
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0036
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0032
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0028
                        }
                      ],
                      "others": -0.0063,
                      "total": 0.096,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.088275
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.063599
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.035773
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.031633
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.027611
                        }
                      ],
                      "others_margin": -0.063564
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.13399638235569,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0294
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0113
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0095
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0062
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0059
                        }
                      ],
                      "others": -0.0171,
                      "total": 0.134,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.175396
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.07638
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.064502
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.041992
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.039949
                        }
                      ],
                      "others_margin": -0.120316
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1217631995677948,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0259
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0114
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0061
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.006
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0051
                        }
                      ],
                      "others": 0.0164,
                      "total": 0.1218,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.19258
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.097894
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.056503
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.055372
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.047375
                        }
                      ],
                      "others_margin": 0.14447
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.2726402282714844,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "ballRecovery_p90",
                          "contribution": -0.0242
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.017
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.015
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0128
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0112
                        }
                      ],
                      "others": -0.0146,
                      "total": 0.2726,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "ballRecovery_p90",
                          "margin": -0.07448
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.055717
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.04946
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.041998
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.038354
                        }
                      ],
                      "others_margin": -0.052116
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.0821892023086548,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0283
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0275
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0272
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0239
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0232
                        }
                      ],
                      "others": -0.0382,
                      "total": 1.0822,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.028318
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.027533
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.027199
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.023926
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.023177
                        }
                      ],
                      "others_margin": -0.03818
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.117971897125244,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0641
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0476
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0432
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0256
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0213
                        }
                      ],
                      "others": 0.0564,
                      "total": 7.118,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.064085
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.047634
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.043249
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.025557
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.021318
                        }
                      ],
                      "others_margin": 0.056373
                    }
                  }
                ],
                "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.1199, quality 0.900)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1528,
                "assist_rate": 0.1075,
                "assists": 0,
                "expected_goals": 0.1501,
                "goal_rate": 0.1364,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 3,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.8026,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 88,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 164000000,
                "quality_factor": 0.8997,
                "boost_factor": 1.1199
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1528,
                "assist_rate": 0.1075,
                "assists": 0,
                "expected_goals": 0.1501,
                "goal_rate": 0.1364,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 3,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.8026,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 88,
                "progressive_carries": 2,
                "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": 2,
                "expected_assists": 0.1528,
                "assist_rate": 0.1075,
                "assists": 0,
                "expected_goals": 0.1827,
                "goal_rate": 0.1661,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 3,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.8026,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 88,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2175,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.568,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Mario Martín",
                  "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                  "duel_win_rate": 0.568,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.2175,
                  "skill_edge": 0.16,
                  "height_edge": -0.012,
                  "attacker_skill": 0.8999,
                  "defender_skill": 0.5444,
                  "xg_override": 0.1827
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 1.212,
                  "after": 1.4756
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.9066,
                  "after": 1.1038
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.3053,
                  "after": 0.3717
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1501,
                  "after": 0.1827
                },
                {
                  "stat": "goals",
                  "before": 0.1364,
                  "after": 0.1661
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3084,
                "assist_rate": 0.1075,
                "assists": 0,
                "expected_goals": 0.2789,
                "goal_rate": 0.1661,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 3,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.8026,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 88,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2175,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.568,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9287,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1827,
                  "after": 0.2789
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1528,
                  "after": 0.3084
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 6 by projected rating, fifa_overall 90.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3084,
                "assist_rate": 0.1075,
                "assists": 0,
                "expected_goals": 0.2789,
                "goal_rate": 0.1661,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 3,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.8026,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 88,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2175,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.568,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9287,
                "creation_factor": 0.8,
                "fifa_overall": 90.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 6,
                "fifa_rank": 12.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 90.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3084,
                "assist_rate": 0.1075,
                "assists": 0,
                "expected_goals": 0.2789,
                "goal_rate": 0.1661,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 3,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.8026,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 88,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2175,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.568,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2434,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9287,
                "creation_factor": 0.8,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.2434,
                "scorer_weight": 0.259,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0665,
                "finishing_factor": 0.9287,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3084,
                "assist_rate": 0.1075,
                "assists": 0,
                "expected_goals": 0.2789,
                "goal_rate": 0.1661,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.118,
                "minutes": 72,
                "total_pass": 68,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 3,
                "total_own_half_passes": 24,
                "accurate_own_half_passes": 23,
                "total_opp_half_passes": 44,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 81,
                "possession_lost": 8.8026,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 88,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2175,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.568,
                "pressing_faced": "LOW",
                "matchup_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
                "numerical_situation": "1v1",
                "opponent_defenders": "Mario Martín",
                "opponent_faced": "Mario Martín",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2434,
                "projected_assists": 0,
                "assist_probability": 0.2654,
                "finishing_factor": 0.9287,
                "creation_factor": 0.8,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.2654,
                "provider_weight": 0.2467,
                "squad_weight_total": 2.3091,
                "weight_share": 0.1068,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Fermín López": {
          "player_id": 1153270,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 7,
          "height": 176,
          "market_value": 103000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.3123,
            "assist_rate": 0.1296,
            "assists": 0,
            "expected_goals": 0.3633,
            "goal_rate": 0.3735,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "rating": 7.006,
            "minutes": 74,
            "total_pass": 41,
            "accurate_pass": 34,
            "duels_won": 5,
            "total_long_balls": 2,
            "accurate_long_balls": 0,
            "total_own_half_passes": 12,
            "accurate_own_half_passes": 11,
            "total_opp_half_passes": 29,
            "accurate_opp_half_passes": 23,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 59,
            "possession_lost": 13.9784,
            "dispossessed": 0.0,
            "duels_lost": 6,
            "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,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 14,
            "total_progression": 51,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "opponent_faced": "Mario Martín, Orel Mangala",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "antagonist_source": "defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.3046,
            "projected_assists": 0,
            "assist_probability": 0.2682,
            "finishing_factor": 1.25,
            "creation_factor": 0.8774,
            "fifa_overall": 90.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 76,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0861,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 28,
                "key_pass": 3,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0124,
                "expected_assists": 0.1037,
                "total_shots": 1,
                "total_pass": 47,
                "accurate_pass": 40,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 75,
                "rating": 8.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.3788,
                "expected_assists": 0.4771,
                "total_shots": 4,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 47,
                "accurate_pass": 40,
                "key_pass": 4,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 26,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3051,
                "expected_assists": 0.0748,
                "total_shots": 1,
                "total_pass": 14,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0318,
                "expected_assists": 0.0498,
                "total_shots": 3,
                "shots_on_target": 3,
                "total_pass": 43,
                "accurate_pass": 36,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "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": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 8.6,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.0127,
                "expected_assists": 0.0329,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 33,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "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": 33,
            "combined_rank_score": 28.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 44.0,
            "sofascore_rating": 7.8,
            "sofascore_appearances": 3.0,
            "fifa_rank": 13.0,
            "fifa_overall": 90.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.006,
            "source_file": "data/player_rankings.csv",
            "player_name": "Fermín López",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Rafael Romo",
                  "ranking": 28
                },
                {
                  "player_name": "Michael Olise",
                  "ranking": 29
                },
                {
                  "player_name": "Marko Arnautović",
                  "ranking": 30
                },
                {
                  "player_name": "Mikel Oyarzabal",
                  "ranking": 31
                },
                {
                  "player_name": "Vitinha",
                  "ranking": 32
                }
              ],
              "lower": [
                {
                  "player_name": "Bianneider Tamayo",
                  "ranking": 34
                },
                {
                  "player_name": "Virgil van Dijk",
                  "ranking": 35
                },
                {
                  "player_name": "Remo Freuler",
                  "ranking": 36
                },
                {
                  "player_name": "Pablo Cunat Campos",
                  "ranking": 37
                },
                {
                  "player_name": "Pablo Cuñat",
                  "ranking": 38
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.625,
          "history_matches": 6,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.625,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1183,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 6 historical appearances across 8 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1384,
                "assist_rate": 0.1159,
                "assists": 0,
                "expected_goals": 0.2128,
                "goal_rate": 0.334,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 37,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 11,
                "accurate_own_half_passes": 10,
                "total_opp_half_passes": 26,
                "accurate_opp_half_passes": 20,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 53,
                "possession_lost": 12.5,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 45,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 75.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 8.9
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1479,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 8.6
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.6395,
                  "expectedAssists": 0.1458,
                  "creative_index": 0.9205,
                  "creative_efficiency": 0.0529,
                  "shotValueNormalized": 0.1914,
                  "dribbleValueNormalized": 0.2725
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.3977676630020142,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1572
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0994
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0374
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0355
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0338
                        }
                      ],
                      "others": 0.1078,
                      "total": 1.3978,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.156718
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.087746
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.031143
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.028697
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.026551
                        }
                      ],
                      "others_margin": 0.080169
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.13837683200836182,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0151
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.007
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0061
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0043
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0037
                        }
                      ],
                      "others": 0.015,
                      "total": 0.1384,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.159627
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.065981
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.054503
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.03617
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.030618
                        }
                      ],
                      "others_margin": 0.114519
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.11591999977827072,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": 0.0061
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.006
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0062
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0032
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0031
                        }
                      ],
                      "others": 0.0126,
                      "total": 0.1159,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": 0.068968
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.063683
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.062026
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.031647
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.030208
                        }
                      ],
                      "others_margin": 0.11535
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2128203958272934,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.02
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0086
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0055
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.005
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0046
                        }
                      ],
                      "others": -0.0025,
                      "total": 0.2128,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.103709
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.041407
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.026583
                        },
                        {
                          "name": "intensity_index",
                          "margin": 0.023821
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.021717
                        }
                      ],
                      "others_margin": -0.011069
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.33395692706108093,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0408
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0445
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0213
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.018
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0145
                        }
                      ],
                      "others": 0.047,
                      "total": 0.334,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.24357
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.211863
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.087377
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.068329
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.052
                        }
                      ],
                      "others_margin": 0.151284
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5272056460380554,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0484
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0402
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0268
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0149
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.011
                        }
                      ],
                      "others": 0.0485,
                      "total": 0.5272,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.134131
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.098989
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.060997
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.032461
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.023267
                        }
                      ],
                      "others_margin": 0.096387
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.6023057699203491,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.3189
                        },
                        {
                          "name": "dispossessed",
                          "contribution": 0.0652
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0451
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0308
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0276
                        }
                      ],
                      "others": 0.1318,
                      "total": 1.6023,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.318861
                        },
                        {
                          "name": "dispossessed",
                          "margin": 0.065239
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.045129
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.030846
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.027643
                        }
                      ],
                      "others_margin": 0.131805
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.006042003631592,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0534
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0383
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.037
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0211
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0129
                        }
                      ],
                      "others": -0.0165,
                      "total": 7.006,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.053392
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.038283
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.036953
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.02111
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.012948
                        }
                      ],
                      "others_margin": -0.0164
                    }
                  }
                ],
                "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.1183, quality 0.894)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1547,
                "assist_rate": 0.1296,
                "assists": 0,
                "expected_goals": 0.238,
                "goal_rate": 0.3735,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 41,
                "accurate_pass": 34,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 13.9784,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 51,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 103000000,
                "quality_factor": 0.8942,
                "boost_factor": 1.1183
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1547,
                "assist_rate": 0.1296,
                "assists": 0,
                "expected_goals": 0.238,
                "goal_rate": 0.3735,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 41,
                "accurate_pass": 34,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 13.9784,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 51,
                "progressive_carries": 2,
                "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": 2,
                "expected_assists": 0.1547,
                "assist_rate": 0.1296,
                "assists": 0,
                "expected_goals": 0.238,
                "goal_rate": 0.3735,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 41,
                "accurate_pass": 34,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 13.9784,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 51,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "opponent_faced": "Mario Martín, Orel Mangala",
                "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": "Mario Martín, Orel Mangala",
                  "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 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3123,
                "assist_rate": 0.1296,
                "assists": 0,
                "expected_goals": 0.3633,
                "goal_rate": 0.3735,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 41,
                "accurate_pass": 34,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 13.9784,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 51,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "opponent_faced": "Mario Martín, Orel Mangala",
                "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,
                "finishing_factor": 1.25,
                "creation_factor": 0.8774
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.238,
                  "after": 0.3633
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1547,
                  "after": 0.3123
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 9 by projected rating, fifa_overall 90.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3123,
                "assist_rate": 0.1296,
                "assists": 0,
                "expected_goals": 0.3633,
                "goal_rate": 0.3735,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 41,
                "accurate_pass": 34,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 13.9784,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 51,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "opponent_faced": "Mario Martín, Orel Mangala",
                "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,
                "finishing_factor": 1.25,
                "creation_factor": 0.8774,
                "fifa_overall": 90.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 33,
                "fifa_rank": 13.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 90.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3123,
                "assist_rate": 0.1296,
                "assists": 0,
                "expected_goals": 0.3633,
                "goal_rate": 0.3735,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 41,
                "accurate_pass": 34,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 13.9784,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 51,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "opponent_faced": "Mario Martín, Orel Mangala",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.3046,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.8774,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.3046,
                "scorer_weight": 0.4541,
                "squad_weight_total": 3.8932,
                "weight_share": 0.1166,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.3123,
                "assist_rate": 0.1296,
                "assists": 0,
                "expected_goals": 0.3633,
                "goal_rate": 0.3735,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.006,
                "minutes": 74,
                "total_pass": 41,
                "accurate_pass": 34,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 23,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 59,
                "possession_lost": 13.9784,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 51,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "opponent_faced": "Mario Martín, Orel Mangala",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "antagonist_source": "defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.3046,
                "projected_assists": 0,
                "assist_probability": 0.2682,
                "finishing_factor": 1.25,
                "creation_factor": 0.8774,
                "fifa_overall": 90.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.2682,
                "provider_weight": 0.274,
                "squad_weight_total": 2.3091,
                "weight_share": 0.1187,
                "creation_factor": 0.8774,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Raphinha": {
          "player_id": 831005,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 176,
          "market_value": 63000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.266,
            "assist_rate": 0.117,
            "assists": 0,
            "expected_goals": 0.554,
            "goal_rate": 0.5434,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 3,
            "rating": 7.0565,
            "minutes": 79,
            "total_pass": 30,
            "accurate_pass": 25,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 9,
            "accurate_own_half_passes": 9,
            "total_opp_half_passes": 21,
            "accurate_opp_half_passes": 17,
            "crosses_total": 2,
            "crosses_accurate": 0,
            "touches": 44,
            "possession_lost": 8.7063,
            "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,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 2.7076,
            "ball_carries": 13,
            "total_progression": 62,
            "progressive_carries": 2,
            "shots_off_target": 2,
            "duel_xg_multiplier": 1.2811,
            "dribbles_attempted": 3,
            "dribbles_successful": 1.6,
            "crosses_attempted": 3.1,
            "duel_win_rate": 0.611,
            "pressing_faced": "LOW",
            "matchup_zone": "LWB vs RWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Francho Serrano",
            "opponent_faced": "Francho Serrano",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 1,
            "goal_probability": 0.4254,
            "projected_assists": 0,
            "assist_probability": 0.2336,
            "finishing_factor": 1.25,
            "creation_factor": 0.9186,
            "fifa_overall": 88.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 77,
                "rating": 10.0,
                "goal_rate": 3.0,
                "goals": 3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.8306,
                "expected_assists": 0.0272,
                "total_shots": 4,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 19,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 69,
                "rating": 10.0,
                "goal_rate": 3.0,
                "goals": 3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 2.3796,
                "expected_assists": 0.0249,
                "total_shots": 6,
                "shots_on_target": 4,
                "total_pass": 19,
                "accurate_pass": 17,
                "key_pass": 1,
                "tackles": 1,
                "duels_won": 3
              },
              "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.232,
                "expected_assists": 0.5508,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 38,
                "accurate_pass": 29,
                "key_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.2971,
                "expected_assists": 0.0868,
                "total_shots": 3,
                "shots_on_target": 1,
                "total_pass": 48,
                "accurate_pass": 39,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 86,
                "rating": 9.5,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 1.2998,
                "expected_assists": 0.3009,
                "total_shots": 4,
                "shots_on_target": 3,
                "total_pass": 27,
                "accurate_pass": 25,
                "key_pass": 3,
                "tackles": 1,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 63,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.7976,
                "expected_assists": 0.1329,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 16,
                "key_pass": 3,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 80,
                "rating": 9.9,
                "goal_rate": 2.0,
                "goals": 2,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 2.0042,
                "expected_assists": 0.3631,
                "total_shots": 3,
                "shots_on_target": 3,
                "total_pass": 18,
                "accurate_pass": 15,
                "key_pass": 3,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "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": 10,
            "combined_rank_score": 17.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 2.0,
            "sofascore_rating": 9.1,
            "sofascore_appearances": 3.0,
            "fifa_rank": 32.0,
            "fifa_overall": 88.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0565,
            "source_file": "data/player_rankings.csv",
            "player_name": "Raphinha",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jude Bellingham",
                  "ranking": 5
                },
                {
                  "player_name": "Pedri",
                  "ranking": 6
                },
                {
                  "player_name": "Ryu Won-Woo",
                  "ranking": 7
                },
                {
                  "player_name": "Bruno Fernandes",
                  "ranking": 8
                },
                {
                  "player_name": "Felix Horn Myhre",
                  "ranking": 9
                }
              ],
              "lower": [
                {
                  "player_name": "Vini Jr.",
                  "ranking": 11
                },
                {
                  "player_name": "Nico López",
                  "ranking": 12
                },
                {
                  "player_name": "Harry Kane",
                  "ranking": 13
                },
                {
                  "player_name": "Adrián",
                  "ranking": 14
                },
                {
                  "player_name": "Gabriel",
                  "ranking": 15
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.688,
          "history_matches": 7,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.688,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1077,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.119,
                "assist_rate": 0.1056,
                "assists": 0,
                "expected_goals": 0.2557,
                "goal_rate": 0.383,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 27,
                "accurate_pass": 23,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 15,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 40,
                "possession_lost": 7.86,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 1.25,
                "ball_carries": 12,
                "total_progression": 56,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 10.0
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 10.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 9.5
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 63.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 9.9
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 3.7395,
                  "expectedAssists": 0.1882,
                  "creative_index": 0.7894,
                  "creative_efficiency": 0.0717,
                  "shotValueNormalized": 0.5309,
                  "dribbleValueNormalized": 0.4894
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.3997834920883179,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1223
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.08
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0772
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0458
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0453
                        }
                      ],
                      "others": 0.1025,
                      "total": 1.3998,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.123997
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.073484
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.066163
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.037304
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.035543
                        }
                      ],
                      "others_margin": 0.075973
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.1190323457121849,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0249
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0052
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.004
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.004
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0041
                        }
                      ],
                      "others": -0.0,
                      "total": 0.119,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.251133
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.047896
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.036767
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.035285
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.035088
                        }
                      ],
                      "others_margin": 0.000454
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.10560774803161621,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "cross_accuracy",
                          "contribution": -0.0061
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0051
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0054
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0058
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0033
                        }
                      ],
                      "others": 0.007,
                      "total": 0.1056,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "cross_accuracy",
                          "margin": -0.074579
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.062737
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.062501
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.062275
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.034365
                        }
                      ],
                      "others_margin": 0.06812
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2557397484779358,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0478
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0279
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0103
                        },
                        {
                          "name": "cross_accuracy",
                          "contribution": -0.0077
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0068
                        }
                      ],
                      "others": -0.012,
                      "total": 0.2557,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.232327
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.114131
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.039059
                        },
                        {
                          "name": "cross_accuracy",
                          "margin": -0.029271
                        },
                        {
                          "name": "intensity_index",
                          "margin": 0.025927
                        }
                      ],
                      "others_margin": -0.045458
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.38297343254089355,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0888
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0727
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0173
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0161
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0142
                        }
                      ],
                      "others": 0.0582,
                      "total": 0.383,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.470413
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.267817
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.054402
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.050537
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.044601
                        }
                      ],
                      "others_margin": 0.164679
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7559779286384583,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.1974
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0726
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0295
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0293
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0303
                        }
                      ],
                      "others": 0.0595,
                      "total": 0.756,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.460653
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.127283
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.047474
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.045027
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.044399
                        }
                      ],
                      "others_margin": 0.081817
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.9675779286384583,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.743
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.2723
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0415
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0374
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.029
                        }
                      ],
                      "others": -0.1108,
                      "total": 1.9675,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.742952
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.27233
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.041516
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.037389
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.028962
                        }
                      ],
                      "others_margin": -0.11065
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.056512355804443,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.1072
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0439
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0424
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0417
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0304
                        }
                      ],
                      "others": -0.0081,
                      "total": 7.0565,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.107213
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.043936
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.042434
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.041738
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.030413
                        }
                      ],
                      "others_margin": -0.00815
                    }
                  }
                ],
                "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.1077, quality 0.859)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1318,
                "assist_rate": 0.117,
                "assists": 0,
                "expected_goals": 0.2833,
                "goal_rate": 0.4242,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 30,
                "accurate_pass": 25,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 17,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 8.7063,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 1.3846,
                "ball_carries": 13,
                "total_progression": 62,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 63000000,
                "quality_factor": 0.8589,
                "boost_factor": 1.1077
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1318,
                "assist_rate": 0.117,
                "assists": 0,
                "expected_goals": 0.2833,
                "goal_rate": 0.4242,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 30,
                "accurate_pass": 25,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 17,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 8.7063,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 1.3846,
                "ball_carries": 13,
                "total_progression": 62,
                "progressive_carries": 2,
                "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": 2,
                "expected_assists": 0.1318,
                "assist_rate": 0.117,
                "assists": 0,
                "expected_goals": 0.3629,
                "goal_rate": 0.5434,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 30,
                "accurate_pass": 25,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 17,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 8.7063,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 1.7738,
                "ball_carries": 13,
                "total_progression": 62,
                "progressive_carries": 2,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2811,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.611,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Francho Serrano",
                "opponent_faced": "Francho Serrano",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Francho Serrano",
                  "matchup_zone": "LWB vs RWB",
                  "duel_win_rate": 0.611,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.2811,
                  "skill_edge": 0.1952,
                  "height_edge": -0.004,
                  "attacker_skill": 0.889,
                  "defender_skill": 0.4551,
                  "xg_override": 0.3629
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 0.9
                },
                {
                  "stat": "totalShots",
                  "before": 2.1795,
                  "after": 2.7922
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 1.3846,
                  "after": 1.7738
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.3421,
                  "after": 1.7194
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.8374,
                  "after": 1.0728
                },
                {
                  "stat": "goals",
                  "before": 0.4242,
                  "after": 0.5434
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2833,
                  "after": 0.3629
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.266,
                "assist_rate": 0.117,
                "assists": 0,
                "expected_goals": 0.554,
                "goal_rate": 0.5434,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 30,
                "accurate_pass": 25,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 17,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 8.7063,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 2.7076,
                "ball_carries": 13,
                "total_progression": 62,
                "progressive_carries": 2,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2811,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.611,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Francho Serrano",
                "opponent_faced": "Francho Serrano",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.9186
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.3629,
                  "after": 0.554
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1318,
                  "after": 0.266
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 8 by projected rating, fifa_overall 88.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.266,
                "assist_rate": 0.117,
                "assists": 0,
                "expected_goals": 0.554,
                "goal_rate": 0.5434,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 30,
                "accurate_pass": 25,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 17,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 8.7063,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 2.7076,
                "ball_carries": 13,
                "total_progression": 62,
                "progressive_carries": 2,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2811,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.611,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Francho Serrano",
                "opponent_faced": "Francho Serrano",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.9186,
                "fifa_overall": 88.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 10,
                "fifa_rank": 32.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 88.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.266,
                "assist_rate": 0.117,
                "assists": 0,
                "expected_goals": 0.554,
                "goal_rate": 0.5434,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 30,
                "accurate_pass": 25,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 17,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 8.7063,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 2.7076,
                "ball_carries": 13,
                "total_progression": 62,
                "progressive_carries": 2,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2811,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.611,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Francho Serrano",
                "opponent_faced": "Francho Serrano",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 1,
                "goal_probability": 0.4254,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 0.9186,
                "fifa_overall": 88.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.4254,
                "scorer_weight": 0.6925,
                "squad_weight_total": 3.8932,
                "weight_share": 0.1779,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.266,
                "assist_rate": 0.117,
                "assists": 0,
                "expected_goals": 0.554,
                "goal_rate": 0.5434,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "rating": 7.0565,
                "minutes": 79,
                "total_pass": 30,
                "accurate_pass": 25,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 9,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 17,
                "crosses_total": 2,
                "crosses_accurate": 0,
                "touches": 44,
                "possession_lost": 8.7063,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 2.7076,
                "ball_carries": 13,
                "total_progression": 62,
                "progressive_carries": 2,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2811,
                "dribbles_attempted": 3,
                "dribbles_successful": 1.6,
                "crosses_attempted": 3.1,
                "duel_win_rate": 0.611,
                "pressing_faced": "LOW",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Francho Serrano",
                "opponent_faced": "Francho Serrano",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 1,
                "goal_probability": 0.4254,
                "projected_assists": 0,
                "assist_probability": 0.2336,
                "finishing_factor": 1.25,
                "creation_factor": 0.9186,
                "fifa_overall": 88.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.2336,
                "provider_weight": 0.2443,
                "squad_weight_total": 2.3091,
                "weight_share": 0.1058,
                "creation_factor": 0.9186,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Dani Olmo": {
          "player_id": 789071,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 20,
          "height": 179,
          "market_value": 58000000,
          "stats": {
            "key_pass": 2,
            "expected_assists": 0.4164,
            "assist_rate": 0.1424,
            "assists": 1,
            "expected_goals": 0.3518,
            "goal_rate": 0.1347,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 2,
            "rating": 7.1699,
            "minutes": 37,
            "total_pass": 30,
            "accurate_pass": 29,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 8,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 23,
            "accurate_opp_half_passes": 21,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 41,
            "possession_lost": 5.5218,
            "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,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 11,
            "total_progression": 39,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "duel_xg_multiplier": 1.2828,
            "dribbles_attempted": 2,
            "dribbles_successful": 1.1,
            "crosses_attempted": 3.0,
            "duel_win_rate": 0.612,
            "pressing_faced": "LOW",
            "matchup_zone": "RWB vs LWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Ramón Terrats",
            "opponent_faced": "Ramón Terrats",
            "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.2966,
            "projected_assists": 1,
            "assist_probability": 0.3406,
            "finishing_factor": 0.8,
            "creation_factor": 0.8,
            "fifa_overall": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 14,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0865,
                "expected_assists": 0.0233,
                "total_shots": 2,
                "shots_on_target": 1,
                "total_pass": 19,
                "accurate_pass": 19,
                "key_pass": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 8.8,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.261,
                "expected_assists": 0.6775,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 60,
                "accurate_pass": 60,
                "key_pass": 6,
                "tackles": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 24,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0348,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 25,
                "clearances": 1
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 15,
                "rating": 7.9,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.1952,
                "expected_assists": 0.4391,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 16,
                "accurate_pass": 15,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 64,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0755,
                "expected_assists": 0.5023,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 37,
                "accurate_pass": 30,
                "key_pass": 2,
                "tackles": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 27,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0193,
                "expected_assists": 0.2054,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 20,
                "accurate_pass": 19,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 25,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1185,
                "expected_assists": 0.0063,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 15,
                "accurate_pass": 15,
                "duels_won": 2
              },
              "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": 426,
            "combined_rank_score": 261.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 292.0,
            "sofascore_rating": 7.05,
            "sofascore_appearances": 2.0,
            "fifa_rank": 230.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1699,
            "source_file": "data/player_rankings.csv",
            "player_name": "Dani Olmo",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Ismoilbek Usmonxo'jayev",
                  "ranking": 421
                },
                {
                  "player_name": "Seok-joo Yoon",
                  "ranking": 422
                },
                {
                  "player_name": "Harry Wilson",
                  "ranking": 423
                },
                {
                  "player_name": "Christos Tzolis",
                  "ranking": 424
                },
                {
                  "player_name": "Nordi Mukiele",
                  "ranking": 425
                }
              ],
              "lower": [
                {
                  "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
                },
                {
                  "player_name": "Lisandro Martínez",
                  "ranking": 431
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.688,
          "history_matches": 7,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.688,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1044,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.1868,
                "assist_rate": 0.1289,
                "assists": 0,
                "expected_goals": 0.1627,
                "goal_rate": 0.0951,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 27,
                "accurate_pass": 26,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 19,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 5.0,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 10,
                "total_progression": 35,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 14.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 8.8
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 24.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 15.0,
                    "is_starting": false,
                    "weight": 0.1356,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 64.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.098,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.0833,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.4998,
                  "expectedAssists": 0.2759,
                  "creative_index": 0.9441,
                  "creative_efficiency": 0.1052,
                  "shotValueNormalized": -0.1853,
                  "dribbleValueNormalized": 0.1636
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.5599793195724487,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1748
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.1153
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0912
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0633
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0491
                        }
                      ],
                      "others": 0.1396,
                      "total": 1.56,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.172815
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.099522
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.072299
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.047291
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.03517
                        }
                      ],
                      "others_margin": 0.093723
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.18683598935604095,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0572
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0068
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0061
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0061
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": 0.0061
                        }
                      ],
                      "others": 0.0173,
                      "total": 0.1868,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.50452
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.046285
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.039371
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.038278
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": 0.036871
                        }
                      ],
                      "others_margin": 0.096343
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.12892116606235504,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0105
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0095
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0054
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0054
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0053
                        }
                      ],
                      "others": 0.0077,
                      "total": 0.1289,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.116215
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.094953
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.050221
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.047969
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.044493
                        }
                      ],
                      "others_margin": 0.061037
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1626749187707901,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0141
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.014
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0123
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0115
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0069
                        }
                      ],
                      "others": -0.0311,
                      "total": 0.1627,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.074183
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.06855
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.060086
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.059978
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.036014
                        }
                      ],
                      "others_margin": -0.174376
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.0950881615281105,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0272
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0243
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0219
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0101
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0057
                        }
                      ],
                      "others": -0.0122,
                      "total": 0.0951,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.203576
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.183596
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.163907
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.086073
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.052034
                        }
                      ],
                      "others_margin": -0.11979
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.27547767758369446,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0317
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0274
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0228
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0155
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0101
                        }
                      ],
                      "others": -0.0178,
                      "total": 0.2755,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.089921
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.077151
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.069031
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.049685
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.033693
                        }
                      ],
                      "others_margin": -0.063215
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.1365776775836944,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.248
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0506
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0462
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0395
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0353
                        }
                      ],
                      "others": -0.0569,
                      "total": 1.1366,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.248029
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.050595
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.046156
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.039529
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.035274
                        }
                      ],
                      "others_margin": -0.057043
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.169906139373779,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1559
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0506
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0395
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.031
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0281
                        }
                      ],
                      "others": 0.005,
                      "total": 7.1699,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.15594
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.050575
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.039532
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.030982
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.02814
                        }
                      ],
                      "others_margin": 0.004981
                    }
                  }
                ],
                "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.1044, quality 0.848)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2063,
                "assist_rate": 0.1424,
                "assists": 0,
                "expected_goals": 0.1797,
                "goal_rate": 0.105,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 30,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.5218,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 58000000,
                "quality_factor": 0.8478,
                "boost_factor": 1.1044
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.2063,
                "assist_rate": 0.1424,
                "assists": 0,
                "expected_goals": 0.1797,
                "goal_rate": 0.105,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 30,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.5218,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "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": 2,
                "expected_assists": 0.2063,
                "assist_rate": 0.1424,
                "assists": 0,
                "expected_goals": 0.2305,
                "goal_rate": 0.1347,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 30,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.5218,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2828,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.1,
                "crosses_attempted": 3.0,
                "duel_win_rate": 0.612,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ramón Terrats",
                "opponent_faced": "Ramón Terrats",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Ramón Terrats",
                  "matchup_zone": "RWB vs LWB",
                  "duel_win_rate": 0.612,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 1.2828,
                  "skill_edge": 0.1924,
                  "height_edge": 0.0,
                  "attacker_skill": 0.8844,
                  "defender_skill": 0.4569,
                  "xg_override": 0.2305
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 1.2552,
                  "after": 1.6102
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.951,
                  "after": 1.2199
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.3042,
                  "after": 0.3902
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1797,
                  "after": 0.2305
                },
                {
                  "stat": "goals",
                  "before": 0.105,
                  "after": 0.1347
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4164,
                "assist_rate": 0.1424,
                "assists": 0,
                "expected_goals": 0.3518,
                "goal_rate": 0.1347,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 30,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.5218,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2828,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.1,
                "crosses_attempted": 3.0,
                "duel_win_rate": 0.612,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ramón Terrats",
                "opponent_faced": "Ramón Terrats",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2305,
                  "after": 0.3518
                },
                {
                  "stat": "expected_assists",
                  "before": 0.2063,
                  "after": 0.4164
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 3 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4164,
                "assist_rate": 0.1424,
                "assists": 0,
                "expected_goals": 0.3518,
                "goal_rate": 0.1347,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 30,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.5218,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2828,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.1,
                "crosses_attempted": 3.0,
                "duel_win_rate": 0.612,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ramón Terrats",
                "opponent_faced": "Ramón Terrats",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 84.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 426,
                "fifa_rank": 230.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4164,
                "assist_rate": 0.1424,
                "assists": 0,
                "expected_goals": 0.3518,
                "goal_rate": 0.1347,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 30,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.5218,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2828,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.1,
                "crosses_attempted": 3.0,
                "duel_win_rate": 0.612,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ramón Terrats",
                "opponent_faced": "Ramón Terrats",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2966,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.2966,
                "scorer_weight": 0.2814,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0723,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "key_pass": 2,
                "expected_assists": 0.4164,
                "assist_rate": 0.1424,
                "assists": 1,
                "expected_goals": 0.3518,
                "goal_rate": 0.1347,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 7.1699,
                "minutes": 37,
                "total_pass": 30,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 23,
                "accurate_opp_half_passes": 21,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 41,
                "possession_lost": 5.5218,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "duel_xg_multiplier": 1.2828,
                "dribbles_attempted": 2,
                "dribbles_successful": 1.1,
                "crosses_attempted": 3.0,
                "duel_win_rate": 0.612,
                "pressing_faced": "LOW",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Ramón Terrats",
                "opponent_faced": "Ramón Terrats",
                "antagonist_source": "attacking_duel, defensive_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.2966,
                "projected_assists": 1,
                "assist_probability": 0.3406,
                "finishing_factor": 0.8,
                "creation_factor": 0.8,
                "fifa_overall": 84.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 1,
                "assist_probability": 0.3406,
                "provider_weight": 0.3331,
                "squad_weight_total": 2.3091,
                "weight_share": 0.1443,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Anthony Gordon": {
          "player_id": 914902,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 17,
          "height": 183,
          "market_value": 82000000,
          "stats": {
            "expected_goals": 0.8391,
            "goal_rate": 0.2496,
            "goals": 1,
            "shots_on_target": 1,
            "total_shots": 3,
            "expected_assists": 0.1986,
            "key_pass": 1,
            "rating": 6.7507,
            "minutes": 66,
            "total_pass": 24,
            "accurate_pass": 21,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 19,
            "accurate_opp_half_passes": 17,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 37,
            "possession_lost": 0.0,
            "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,
            "assist_rate": 0.7471,
            "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": 15,
            "total_progression": 77,
            "progressive_carries": 4,
            "shots_off_target": 2,
            "duel_xg_multiplier": 1.2519,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.7,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.371,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Andrés García, Abdel Abqar",
            "opponent_faced": "Andrés García, Abdel Abqar",
            "antagonist_source": "attacking_duel",
            "projected_goals": 1,
            "goal_probability": 0.5679,
            "projected_assists": 0,
            "assist_probability": 0.1801,
            "finishing_factor": 0.8,
            "creation_factor": 1.25,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 86,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.9081,
                "expected_assists": 0.0178,
                "total_shots": 3,
                "shots_off_target": 3,
                "total_pass": 27,
                "accurate_pass": 24,
                "tackles": 1,
                "duels_won": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 67,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.028,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 16,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 1,
                "duels_won": 1,
                "ball_recovery": 2
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 62,
                "rating": 6.5,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.5656,
                "expected_assists": 0.129,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 27,
                "accurate_pass": 25,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "duels_won": 2
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 77,
                "rating": 7.4,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.2531,
                "expected_assists": 0.1888,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 18,
                "key_pass": 1,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 80,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3171,
                "expected_assists": 0.2526,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 22,
                "accurate_pass": 19,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 3
              },
              "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": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 25,
                "rating": 7.6,
                "assist_rate": 2.0,
                "assists": 2,
                "expected_goals": 0.0769,
                "expected_assists": 0.3274,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 13,
                "accurate_pass": 13,
                "key_pass": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "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": 395,
            "combined_rank_score": 252.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 91.0,
            "sofascore_rating": 7.5,
            "sofascore_appearances": 12.0,
            "fifa_rank": 413.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7507,
            "source_file": "data/player_rankings.csv",
            "player_name": "Anthony Gordon",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Oybek Bozorov",
                  "ranking": 390
                },
                {
                  "player_name": "Marlon Freitas",
                  "ranking": 391
                },
                {
                  "player_name": "Gabriel Paulista",
                  "ranking": 392
                },
                {
                  "player_name": "Sergio Rochet",
                  "ranking": 393
                },
                {
                  "player_name": "João Palhinha",
                  "ranking": 394
                }
              ],
              "lower": [
                {
                  "player_name": "Giorgi Jgerenaia",
                  "ranking": 396
                },
                {
                  "player_name": "Stipe Perica",
                  "ranking": 397
                },
                {
                  "player_name": "Nurillo Tukhtasinov",
                  "ranking": 398
                },
                {
                  "player_name": "Min Ji-Hoon",
                  "ranking": 399
                },
                {
                  "player_name": "Avazbek Ulmasaliyev",
                  "ranking": 400
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.625,
          "history_matches": 6,
          "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": 6,
            "data_confidence": 0.625,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.1151,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 6 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.3938,
                "goal_rate": 0.1788,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0882,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 21,
                "accurate_pass": 19,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 33,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.67,
                "assists": 1,
                "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": 69,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 77.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 25.0,
                    "is_starting": false,
                    "weight": 0.1069,
                    "rating": 7.6
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.5767,
                  "totalShots": 2.0204,
                  "minutesPlayed": 69.331,
                  "shotValueNormalized": -0.2178,
                  "accuratePass": 19.845,
                  "expectedAssists": 0.1271
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.39378514885902405,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0774
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.019
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0161
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0156
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0153
                        }
                      ],
                      "others": -0.081,
                      "total": 0.3938,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": 0.193429
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.04226
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.034491
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.033388
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.03284
                        }
                      ],
                      "others_margin": -0.187117
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.1787935048341751,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0478
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0233
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": -0.0147
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0123
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0077
                        }
                      ],
                      "others": -0.0174,
                      "total": 0.1788,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.18235
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.102754
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": -0.070886
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.063144
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.040207
                        }
                      ],
                      "others_margin": -0.093003
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5853423476219177,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1171
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0557
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0458
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0249
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0179
                        }
                      ],
                      "others": 0.0191,
                      "total": 0.5853,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.221663
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.111541
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.083292
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.04446
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.032047
                        }
                      ],
                      "others_margin": 0.033346
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.0511467456817627,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.2351
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1673
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.1188
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0618
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0365
                        }
                      ],
                      "others": 0.0694,
                      "total": 2.0511,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": 0.23505
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.167333
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.118785
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.061823
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.0365
                        }
                      ],
                      "others_margin": 0.069461
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.08823380619287491,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0238
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.008
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0075
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0049
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0051
                        }
                      ],
                      "others": -0.0051,
                      "total": 0.0882,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.334128
                        },
                        {
                          "name": "shot_waste_rate",
                          "margin": -0.100377
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.094414
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.057361
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.056074
                        }
                      ],
                      "others_margin": -0.05674
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.9999380707740784,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.1511
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0549
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.051
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0482
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0415
                        }
                      ],
                      "others": 0.058,
                      "total": 0.9999,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.201093
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.064159
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.056111
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.050273
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.043107
                        }
                      ],
                      "others_margin": 0.059693
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.750709056854248,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0504
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0311
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.029
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0111
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0096
                        }
                      ],
                      "others": -0.0175,
                      "total": 6.7507,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.050445
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.031065
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.02898
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.011079
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.009594
                        }
                      ],
                      "others_margin": -0.017378
                    }
                  }
                ],
                "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.1151, quality 0.884)",
              "stats": {
                "expected_goals": 0.4391,
                "goal_rate": 0.1994,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0984,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.7471,
                "assists": 1,
                "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": 15,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 82000000,
                "quality_factor": 0.8837,
                "boost_factor": 1.1151
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.4391,
                "goal_rate": 0.1994,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0984,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.7471,
                "assists": 1,
                "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": 15,
                "total_progression": 77,
                "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.5497,
                "goal_rate": 0.2496,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0984,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.7471,
                "assists": 1,
                "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": 15,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2519,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.371,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Andrés García, Abdel Abqar",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.371,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 1.2519,
                  "skill_edge": 0.1813,
                  "height_edge": -0.01,
                  "attacker_skill": 0.8837,
                  "defender_skill": 0.4807,
                  "xg_override": 0.5497
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.2873,
                  "after": 2.8635
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.6345,
                  "after": 2.0462
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.6527,
                  "after": 0.8171
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.4391,
                  "after": 0.5497
                },
                {
                  "stat": "goals",
                  "before": 0.1994,
                  "after": 0.2496
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.8391,
                "goal_rate": 0.2496,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1986,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.7471,
                "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": 15,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2519,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.371,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.5497,
                  "after": 0.8391
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0984,
                  "after": 0.1986
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 18 by projected rating, fifa_overall 82.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.8391,
                "goal_rate": 0.2496,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1986,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.7471,
                "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": 15,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2519,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.371,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 395,
                "fifa_rank": 413.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.8391,
                "goal_rate": 0.2496,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1986,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.7471,
                "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": 15,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2519,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.371,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.5679,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 1,
                "goal_probability": 0.5679,
                "scorer_weight": 0.6713,
                "squad_weight_total": 3.8932,
                "weight_share": 0.1724,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.8391,
                "goal_rate": 0.2496,
                "goals": 1,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1986,
                "key_pass": 1,
                "rating": 6.7507,
                "minutes": 66,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 17,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 37,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.7471,
                "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": 15,
                "total_progression": 77,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.2519,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.7,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.371,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 1,
                "goal_probability": 0.5679,
                "projected_assists": 0,
                "assist_probability": 0.1801,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.1801,
                "provider_weight": 0.2482,
                "squad_weight_total": 2.3091,
                "weight_share": 0.1075,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Karim Adeyemi": {
          "player_id": 940054,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 14,
          "height": 180,
          "market_value": 41000000,
          "stats": {
            "expected_goals": 0.816,
            "goal_rate": 0.2697,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 3,
            "expected_assists": 0.2392,
            "key_pass": 1,
            "rating": 6.8759,
            "minutes": 35,
            "total_pass": 16,
            "accurate_pass": 13,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 11,
            "accurate_opp_half_passes": 9,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 27,
            "possession_lost": 6.1998,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_lost": 0,
            "total_contest": 3,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.3149,
            "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": 56,
            "progressive_carries": 4,
            "shots_off_target": 2,
            "duel_xg_multiplier": 1.1696,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.6,
            "aerial_won": 2,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.315,
            "pressing_faced": "LOW",
            "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
            "numerical_situation": "1v2",
            "opponent_defenders": "Andrés García, Abdel Abqar",
            "opponent_faced": "Andrés García, Abdel Abqar",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.5578,
            "projected_assists": 0,
            "assist_probability": 0.2127,
            "finishing_factor": 0.8,
            "creation_factor": 1.25,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 13,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3701,
                "expected_assists": 0.0019,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 8.2,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 1.8305,
                "expected_assists": 0.5412,
                "total_shots": 8,
                "shots_on_target": 1,
                "shots_off_target": 7,
                "total_pass": 42,
                "accurate_pass": 36,
                "key_pass": 4,
                "aerial_won": 2,
                "duels_won": 12,
                "ball_recovery": 5
              },
              "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 23,
                "rating": 7.9,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.648,
                "expected_assists": 0.0185,
                "total_shots": 4,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 11,
                "tackles": 2,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 28,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0459,
                "total_shots": 0,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "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": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 13,
                "rating": 6.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.3099,
                "expected_assists": 0.0195,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 2,
                "accurate_pass": 2,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 1
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 10,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.5525,
                "expected_assists": 0.0012,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 3,
                "accurate_pass": 3,
                "ball_recovery": 1
              },
              "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": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 65,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.5198,
                "expected_assists": 0.051,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 20,
                "accurate_pass": 11,
                "key_pass": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "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": 927,
            "combined_rank_score": 430.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 3.0,
            "fifa_rank": 416.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8759,
            "source_file": "data/player_rankings.csv",
            "player_name": "Karim Adeyemi",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Joaquín Montecinos",
                  "ranking": 922
                },
                {
                  "player_name": "Sang-jun Lee",
                  "ranking": 923
                },
                {
                  "player_name": "Ju-an You",
                  "ranking": 924
                },
                {
                  "player_name": "Julián Brea",
                  "ranking": 925
                },
                {
                  "player_name": "Rodrigo Zalazar",
                  "ranking": 926
                }
              ],
              "lower": [
                {
                  "player_name": "Marlon Maranhão",
                  "ranking": 928
                },
                {
                  "player_name": "Islom Kenzhaboev",
                  "ranking": 929
                },
                {
                  "player_name": "Isco",
                  "ranking": 930
                },
                {
                  "player_name": "Karim Benzema",
                  "ranking": 931
                },
                {
                  "player_name": "Julen Agirrezabala",
                  "ranking": 932
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.688,
          "history_matches": 7,
          "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": 7,
            "data_confidence": 0.688,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "market_value_adjustment": 1.0858,
            "fbref_prior_metrics": null,
            "rationale": "XGBoost regressor (F_service) evaluated 7 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.421,
                "goal_rate": 0.2124,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1092,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 14,
                "accurate_pass": 12,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 10,
                "accurate_opp_half_passes": 8,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 25,
                "possession_lost": 5.71,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.29,
                "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": 52,
                "progressive_carries": 3,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 13.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 23.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 28.0,
                    "is_starting": false,
                    "weight": 0.1356,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 13.0,
                    "is_starting": false,
                    "weight": 0.1152,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 10.0,
                    "is_starting": false,
                    "weight": 0.098,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 7.6
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 1.0239,
                  "totalShots": 2.6566,
                  "minutesPlayed": 35.1145,
                  "shotValueNormalized": -0.2531,
                  "accuratePass": 12.9023,
                  "expectedAssists": 0.1178
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.4209805130958557,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.101
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0421
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0413
                        },
                        {
                          "name": "bigChanceMissed",
                          "contribution": -0.0167
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0165
                        }
                      ],
                      "others": -0.0432,
                      "total": 0.421,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": 0.245732
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.086856
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.085223
                        },
                        {
                          "name": "bigChanceMissed",
                          "margin": -0.036608
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.036219
                        }
                      ],
                      "others_margin": -0.097681
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.21237146854400635,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0577
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.054
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0418
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0149
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0091,
                      "total": 0.2124,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.183484
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.17044
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.155363
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.061719
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": -0.053076
                        }
                      ],
                      "others_margin": -0.042709
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7431972622871399,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0967
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0886
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0807
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0342
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.032
                        }
                      ],
                      "others": -0.0164,
                      "total": 0.7432,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "shot_accuracy",
                          "margin": 0.152042
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.121585
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.11009
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.048173
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.043004
                        }
                      ],
                      "others_margin": -0.021848
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.9388972622871399,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.3597
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1602
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.11
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.1058
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0933
                        }
                      ],
                      "others": -0.0049,
                      "total": 1.9389,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.359665
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.160238
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.109967
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.105815
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.093259
                        }
                      ],
                      "others_margin": -0.004766
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.10915831476449966,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0267
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0056
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0049
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": 0.0037
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0034
                        }
                      ],
                      "others": 0.0049,
                      "total": 0.1092,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.368168
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.062295
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.051383
                        },
                        {
                          "name": "shot_waste_rate",
                          "margin": 0.036924
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.032803
                        }
                      ],
                      "others_margin": 0.046095
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.7518451809883118,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1994
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.085
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0748
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0528
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0425
                        }
                      ],
                      "others": 0.0179,
                      "total": 0.7518,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.3481
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.163384
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.124564
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.07938
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.059722
                        }
                      ],
                      "others_margin": 0.024108
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.875942230224609,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0477
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0431
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0298
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0284
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0237
                        }
                      ],
                      "others": 0.0432,
                      "total": 6.8759,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.047676
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.043093
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.029829
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.028411
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.023725
                        }
                      ],
                      "others_margin": 0.043256
                    }
                  }
                ],
                "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.0858, quality 0.786)",
              "stats": {
                "expected_goals": 0.4571,
                "goal_rate": 0.2306,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1185,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.1998,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3149,
                "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": 56,
                "progressive_carries": 4,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 41000000,
                "quality_factor": 0.7859,
                "boost_factor": 1.0858
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.4571,
                "goal_rate": 0.2306,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.1185,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.1998,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3149,
                "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": 56,
                "progressive_carries": 4,
                "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.5346,
                "goal_rate": 0.2697,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.1185,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.1998,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3149,
                "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": 56,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.1696,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.315,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Andrés García, Abdel Abqar",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.315,
                  "pressing_faced": "LOW",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 1.1696,
                  "skill_edge": 0.1374,
                  "height_edge": -0.022,
                  "attacker_skill": 0.7859,
                  "defender_skill": 0.4807,
                  "xg_override": 0.5346
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.1053,
                  "after": 2.4624
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.2983,
                  "after": 1.5185
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.807,
                  "after": 0.9439
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.4571,
                  "after": 0.5346
                },
                {
                  "stat": "goals",
                  "before": 0.2306,
                  "after": 0.2697
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 3.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.816,
                "goal_rate": 0.2697,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.2392,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.1998,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3149,
                "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": 56,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.1696,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.315,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.5346,
                  "after": 0.816
                },
                {
                  "stat": "expected_assists",
                  "before": 0.1185,
                  "after": 0.2392
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 13 by projected rating, fifa_overall 82.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.816,
                "goal_rate": 0.2697,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.2392,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.1998,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3149,
                "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": 56,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.1696,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.315,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 927,
                "fifa_rank": 416.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.816,
                "goal_rate": 0.2697,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.2392,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.1998,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3149,
                "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": 56,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.1696,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.315,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.5578,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.5578,
                "scorer_weight": 0.6528,
                "squad_weight_total": 3.8932,
                "weight_share": 0.1677,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.816,
                "goal_rate": 0.2697,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.2392,
                "key_pass": 1,
                "rating": 6.8759,
                "minutes": 35,
                "total_pass": 16,
                "accurate_pass": 13,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 9,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 27,
                "possession_lost": 6.1998,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.3149,
                "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": 56,
                "progressive_carries": 4,
                "shots_off_target": 2,
                "duel_xg_multiplier": 1.1696,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.6,
                "aerial_won": 2,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.315,
                "pressing_faced": "LOW",
                "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                "numerical_situation": "1v2",
                "opponent_defenders": "Andrés García, Abdel Abqar",
                "opponent_faced": "Andrés García, Abdel Abqar",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.5578,
                "projected_assists": 0,
                "assist_probability": 0.2127,
                "finishing_factor": 0.8,
                "creation_factor": 1.25,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.2127,
                "provider_weight": 0.299,
                "squad_weight_total": 2.3091,
                "weight_share": 0.1295,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        }
      },
      "bench_players": {
        "Dominik Livaković": {
          "player_id": 190419,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 40,
          "height": 186,
          "market_value": 4099999,
          "stats": {
            "saves": 0,
            "goals_prevented": -0.0081,
            "rating": 6.8956,
            "minutes": 4,
            "total_pass": 1,
            "accurate_pass": 1,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "touches": 1,
            "clearances": 0,
            "ball_recovery": 0,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 0,
            "possession_lost": 0.146,
            "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.111,
            "bench_expected_minutes": 4.45,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "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": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 18,
                "accurate_pass": 15,
                "clearances": 2,
                "ball_recovery": 8,
                "saves": 2,
                "goals_prevented": -0.1939
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2016,
            "combined_rank_score": 769.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 274.0,
            "sofascore_rating": 7.0714,
            "sofascore_appearances": 7.0,
            "fifa_rank": 1264.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8956,
            "source_file": "data/player_rankings.csv",
            "player_name": "Dominik Livaković",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Ayoub El Kaabi",
                  "ranking": 2011
                },
                {
                  "player_name": "Viktor Tsygankov",
                  "ranking": 2012
                },
                {
                  "player_name": "Brennan Johnson",
                  "ranking": 2013
                },
                {
                  "player_name": "Dani Vivian",
                  "ranking": 2014
                },
                {
                  "player_name": "Joaquín Larrivey",
                  "ranking": 2015
                }
              ],
              "lower": [
                {
                  "player_name": "Alexander Nübel",
                  "ranking": 2017
                },
                {
                  "player_name": "Domingos Duarte",
                  "ranking": 2018
                },
                {
                  "player_name": "Davide Frattesi",
                  "ranking": 2019
                },
                {
                  "player_name": "Sebastian Szymański",
                  "ranking": 2020
                },
                {
                  "player_name": "Ibrokhim Ibrokhimov",
                  "ranking": 2021
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.312,
          "history_matches": 1,
          "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": 1,
            "data_confidence": 0.312,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 4.446242177473513,
            "bench_appearance_prob": 0.11119282624879602,
            "market_value_adjustment": 0.9853,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost G_service (1 historical appearances) to 4.4 expected mins (appearance prob 0.11)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost G_service raw output over 3 target models",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.1672,
                "rating": 6.8956,
                "minutes": 90,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "touches": 29,
                "clearances": 2,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 3.0,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 15,
                "accurate_own_half_passes": 14
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 4,
                  "trained_at": "2026-09-29T10:01:45.250339+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 135,
                    "rows": 3738
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 1.0,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 1.0,
                  "is_starting_11": 0.0,
                  "save_contribution": 1.8061,
                  "goalkeeperValueNormalized": 0.09,
                  "sweeper_actions_p90": 2.0,
                  "possessionLostCtrl": 3.0,
                  "accurateKeeperSweeper": 2.0,
                  "accurateLongBalls": 2.0
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 2.5752038955688477,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0645
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0523
                      },
                      {
                        "name": "saves",
                        "importance": 0.0514
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0475
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0445
                      }
                    ],
                    "decomposition": {
                      "base": 2.9861,
                      "items": [
                        {
                          "name": "save_contribution",
                          "contribution": -0.1989
                        },
                        {
                          "name": "saves",
                          "contribution": -0.0841
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0699
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0555
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0447
                        }
                      ],
                      "others": -0.0688,
                      "total": 2.5752,
                      "log_link": true,
                      "margin_base": 1.093963,
                      "item_margins": [
                        {
                          "name": "save_contribution",
                          "margin": -0.068939
                        },
                        {
                          "name": "saves",
                          "margin": -0.03064
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.026215
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.020872
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.01676
                        }
                      ],
                      "others_margin": -0.026352
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": -0.16723893582820892,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0582
                      },
                      {
                        "name": "punches",
                        "importance": 0.0515
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.051
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0478
                      },
                      {
                        "name": "touches",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": -0.0455,
                      "items": [
                        {
                          "name": "touches",
                          "contribution": -0.0656
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "contribution": -0.0616
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0611
                        },
                        {
                          "name": "save_contribution",
                          "contribution": -0.0454
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": -0.0366
                        }
                      ],
                      "others": 0.0264,
                      "total": -0.1672,
                      "log_link": false,
                      "margin_base": -0.045465,
                      "item_margins": [
                        {
                          "name": "touches",
                          "margin": -0.065587
                        },
                        {
                          "name": "goalkeeperValueNormalized",
                          "margin": -0.061624
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.061081
                        },
                        {
                          "name": "save_contribution",
                          "margin": -0.045356
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": -0.03662
                        }
                      ],
                      "others_margin": 0.026332
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.8956146240234375,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.075
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0537
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0529
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0478
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 7.0878,
                      "items": [
                        {
                          "name": "save_contribution",
                          "contribution": -0.08
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": 0.0536
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0465
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0457
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": -0.0451
                        }
                      ],
                      "others": -0.0285,
                      "total": 6.8956,
                      "log_link": false,
                      "margin_base": 7.087778,
                      "item_margins": [
                        {
                          "name": "save_contribution",
                          "margin": -0.079967
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": 0.05362
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.046463
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.045745
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": -0.045094
                        }
                      ],
                      "others_margin": -0.028515
                    }
                  }
                ],
                "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.9853, quality 0.451)",
              "stats": {
                "saves": 3,
                "goals_prevented": -0.1648,
                "rating": 6.8956,
                "minutes": 90,
                "total_pass": 18,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 5,
                "accurate_long_balls": 2,
                "touches": 29,
                "clearances": 2,
                "ball_recovery": 8,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 2,
                "sweeper_accurate": 2,
                "saves_inside_box": 0,
                "possession_lost": 2.956,
                "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": 4099999,
                "quality_factor": 0.4511,
                "boost_factor": 0.9853
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 4.4 expected minutes (appearance prob 0.11)",
              "stats": {
                "saves": 0,
                "goals_prevented": -0.0081,
                "rating": 6.8956,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 1,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.146,
                "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.111,
                "bench_expected_minutes": 4.45
              },
              "params": {
                "expected_minutes": 4.45,
                "appearance_probability": 0.111
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 0,
                "goals_prevented": -0.0081,
                "rating": 6.8956,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 1,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.146,
                "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.111,
                "bench_expected_minutes": 4.45
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 12 by projected rating, fifa_overall 78.0; not used by the projection)",
              "stats": {
                "saves": 0,
                "goals_prevented": -0.0081,
                "rating": 6.8956,
                "minutes": 4,
                "total_pass": 1,
                "accurate_pass": 1,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "touches": 1,
                "clearances": 0,
                "ball_recovery": 0,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 0,
                "possession_lost": 0.146,
                "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.111,
                "bench_expected_minutes": 4.45,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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": 78.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2016,
                "fifa_rank": 1264.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            }
          ]
        },
        "Eric García": {
          "player_id": 876214,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 24,
          "height": 182,
          "market_value": 39000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.831,
            "minutes": 15,
            "total_pass": 13,
            "accurate_pass": 12,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 7,
            "accurate_opp_half_passes": 7,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 16,
            "possession_lost": 1.704,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0161,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 3,
            "total_progression": 7,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.36,
            "bench_expected_minutes": 14.91,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "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": 85.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0428,
                "expected_assists": 0.0678,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 73,
                "accurate_pass": 69,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0788,
                "total_shots": 0,
                "total_pass": 88,
                "accurate_pass": 79,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 9
              },
              "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0351,
                "expected_assists": 0.0239,
                "total_shots": 1,
                "total_pass": 103,
                "accurate_pass": 93,
                "tackles": 4,
                "tackles_won": 4,
                "clearances": 6,
                "duels_won": 4,
                "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 29,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0181,
                "total_shots": 0,
                "total_pass": 34,
                "accurate_pass": 32,
                "ball_recovery": 1
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 80,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0721,
                "expected_assists": 0.1814,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 68,
                "accurate_pass": 58,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 3,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 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"
            },
            {
              "match_id": 16416311.0,
              "match_date": "2026-08-23",
              "home_team": "Elche",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.1559,
                "total_shots": 0,
                "total_pass": 71,
                "accurate_pass": 62,
                "key_pass": 1,
                "tackles": 4,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 6,
                "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"
            }
          ],
          "ranking": {
            "global_player_rank": 107,
            "combined_rank_score": 106.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 52.0,
            "sofascore_rating": 7.7,
            "sofascore_appearances": 2.0,
            "fifa_rank": 160.0,
            "fifa_overall": 85.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.831,
            "source_file": "data/player_rankings.csv",
            "player_name": "Eric García",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "José Sanhueza",
                  "ranking": 102
                },
                {
                  "player_name": "Fedor Lapoukhov",
                  "ranking": 103
                },
                {
                  "player_name": "Ramón Sosa",
                  "ranking": 104
                },
                {
                  "player_name": "Hakan Çalhanoğlu",
                  "ranking": 105
                },
                {
                  "player_name": "Paulo Dybala",
                  "ranking": 106
                }
              ],
              "lower": [
                {
                  "player_name": "Gabriel Castellón",
                  "ranking": 108
                },
                {
                  "player_name": "Ben White",
                  "ranking": 109
                },
                {
                  "player_name": "Federico Dimarco",
                  "ranking": 110
                },
                {
                  "player_name": "Jérémy Doku",
                  "ranking": 111
                },
                {
                  "player_name": "Bruno Lamas",
                  "ranking": 112
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.625,
          "history_matches": 6,
          "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": 6,
            "data_confidence": 0.625,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 14.910768701577831,
            "bench_appearance_prob": 0.3595803955262651,
            "market_value_adjustment": 1.0826,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (6 historical appearances) to 14.9 expected mins (appearance prob 0.36)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost D_service raw output over 7 target models",
              "stats": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.831,
                "minutes": 78,
                "total_pass": 73,
                "accurate_pass": 66,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 32,
                "accurate_own_half_passes": 29,
                "total_opp_half_passes": 41,
                "accurate_opp_half_passes": 37,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 91,
                "possession_lost": 9.5,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.09,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 16,
                "total_progression": 42,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 29.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 80.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 7.9
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 2.4371,
                  "defensive_actions": 2.8568,
                  "wonTackle": 1.5277,
                  "totalTackle_p90": 2.1347,
                  "totalClearance_p90": 2.4842,
                  "aerialWon": 0.8038
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6317891478538513,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1987
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0586
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0272
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0152
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0144
                        }
                      ],
                      "others": 0.0121,
                      "total": 0.6318,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.248366
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.086827
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.04302
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.024198
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.023023
                        }
                      ],
                      "others_margin": 0.019469
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.6389623880386353,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.15
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.115
                        },
                        {
                          "name": "wonTackle",
                          "contribution": 0.06
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0385
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0108
                        }
                      ],
                      "others": 0.032,
                      "total": 1.639,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.106743
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.074743
                        },
                        {
                          "name": "wonTackle",
                          "margin": 0.03687
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.023503
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.006714
                        }
                      ],
                      "others_margin": 0.019757
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 1.0761668682098389,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": 0.1465
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0826
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0184
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0109
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0107
                        }
                      ],
                      "others": 0.0033,
                      "total": 1.0762,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": 0.163329
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.081578
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.017273
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.01023
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.010063
                        }
                      ],
                      "others_margin": 0.003004
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.8923966884613037,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.6868
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.3834
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.1838
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.1334
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0581
                        }
                      ],
                      "others": -0.0497,
                      "total": 1.8924,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.226584
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.153117
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.082647
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.064567
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.029501
                        }
                      ],
                      "others_margin": -0.025861
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.5463300943374634,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.5731
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1362
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0421
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0347
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0258
                        }
                      ],
                      "others": -0.0324,
                      "total": 0.5463,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.60041
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.217566
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.078195
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.064818
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.045664
                        }
                      ],
                      "others_margin": -0.057562
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.3765,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0519
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0265
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0158
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0142
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0118
                        }
                      ],
                      "others": -0.0345,
                      "total": 0.3765,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.051868
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.026493
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.015819
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.01425
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.011803
                        }
                      ],
                      "others_margin": -0.034585
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.831035614013672,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1027
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0416
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0268
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0236
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0201
                        }
                      ],
                      "others": -0.0478,
                      "total": 6.831,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.102703
                        },
                        {
                          "name": "touches",
                          "margin": 0.041592
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.026817
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.023631
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.020089
                        }
                      ],
                      "others_margin": -0.047773
                    }
                  }
                ],
                "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": {
                "interceptions": 1,
                "tackles": 2,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.831,
                "minutes": 78,
                "total_pass": 79,
                "accurate_pass": 71,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 34,
                "accurate_own_half_passes": 31,
                "total_opp_half_passes": 45,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 99,
                "possession_lost": 10.285,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0974,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 18,
                "total_progression": 45,
                "progressive_carries": 0,
                "key_pass": 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 14.9 expected minutes (appearance prob 0.36)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.831,
                "minutes": 15,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.704,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0161,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.36,
                "bench_expected_minutes": 14.91
              },
              "params": {
                "expected_minutes": 14.91,
                "appearance_probability": 0.36
              }
            },
            {
              "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.831,
                "minutes": 15,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.704,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0161,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.36,
                "bench_expected_minutes": 14.91
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 15 by projected rating, fifa_overall 85.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.831,
                "minutes": 15,
                "total_pass": 13,
                "accurate_pass": 12,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 7,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 16,
                "possession_lost": 1.704,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0161,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 3,
                "total_progression": 7,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.36,
                "bench_expected_minutes": 14.91,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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": 85.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 107,
                "fifa_rank": 160.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 85.0
              }
            }
          ]
        },
        "Gerard Martín": {
          "player_id": 1094827,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 18,
          "height": 186,
          "market_value": 32000000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.9917,
            "minutes": 15,
            "total_pass": 12,
            "accurate_pass": 11,
            "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": 5,
            "accurate_opp_half_passes": 4,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 14,
            "possession_lost": 0.7882,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0035,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 5,
            "total_progression": 16,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.352,
            "bench_expected_minutes": 14.74,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "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": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 31,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0074,
                "total_shots": 0,
                "total_pass": 43,
                "accurate_pass": 38,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 3,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.026,
                "total_shots": 0,
                "total_pass": 69,
                "accurate_pass": 66,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 45,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0056,
                "total_shots": 0,
                "total_pass": 48,
                "accurate_pass": 43,
                "tackles": 1,
                "interceptions": 2,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0294,
                "total_shots": 0,
                "total_pass": 89,
                "accurate_pass": 82,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1036,
                "expected_assists": 0.0267,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 95,
                "accurate_pass": 93,
                "interceptions": 2,
                "clearances": 4,
                "ball_recovery": 3
              },
              "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": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Elche",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0046,
                "total_shots": 0,
                "total_pass": 58,
                "accurate_pass": 56,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 12,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 1191,
            "combined_rank_score": 525.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 108.0,
            "sofascore_rating": 7.45,
            "sofascore_appearances": 2.0,
            "fifa_rank": 942.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.9917,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gerard Martín",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Diego Rubio",
                  "ranking": 1186
                },
                {
                  "player_name": "Ismaïla Sarr",
                  "ranking": 1187
                },
                {
                  "player_name": "Kevin Danso",
                  "ranking": 1188
                },
                {
                  "player_name": "Folarin Balogun",
                  "ranking": 1189
                },
                {
                  "player_name": "Jonathan David",
                  "ranking": 1190
                }
              ],
              "lower": [
                {
                  "player_name": "Keelan Lebon",
                  "ranking": 1192
                },
                {
                  "player_name": "Sukhrob Nurullaev",
                  "ranking": 1193
                },
                {
                  "player_name": "Ayyoub Bouaddi",
                  "ranking": 1194
                },
                {
                  "player_name": "Choi Hee-won",
                  "ranking": 1195
                },
                {
                  "player_name": "Murodbek Rahmatov",
                  "ranking": 1196
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.625,
          "history_matches": 6,
          "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": 6,
            "data_confidence": 0.625,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 14.738792805130341,
            "bench_appearance_prob": 0.35176330932410643,
            "market_value_adjustment": 1.0696,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost D_service (6 historical appearances) to 14.7 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": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9917,
                "minutes": 73,
                "total_pass": 67,
                "accurate_pass": 63,
                "duels_won": 4,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 38,
                "accurate_own_half_passes": 38,
                "total_opp_half_passes": 29,
                "accurate_opp_half_passes": 26,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 77,
                "possession_lost": 4.5,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 26,
                "total_progression": 93,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 31.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Elche",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 7.4
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 4.2111,
                  "defensive_actions": 1.7285,
                  "wonTackle": 0.3477,
                  "totalTackle_p90": 1.3019,
                  "totalClearance_p90": 6.3925,
                  "aerialWon": 1.4127
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.7052322030067444,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2283
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0469
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0275
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0254
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0127
                        }
                      ],
                      "others": -0.0274,
                      "total": 0.7052,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.291346
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.067135
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.038766
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.035919
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.017507
                        }
                      ],
                      "others_margin": -0.038046
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.115101933479309,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0649
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0436
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0381
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0301
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0135
                        }
                      ],
                      "others": -0.026,
                      "total": 1.1151,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.049978
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.035005
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.031678
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.025732
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.011767
                        }
                      ],
                      "others_margin": -0.023059
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6536116003990173,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1273
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0305
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0231
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0188
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0139
                        }
                      ],
                      "others": -0.0046,
                      "total": 0.6536,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.167476
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.044676
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.034045
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.027586
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.020927
                        }
                      ],
                      "others_margin": -0.007011
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.505235195159912,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.1428
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1935
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1082
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": -0.0735
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": 0.0614
                        }
                      ],
                      "others": -0.0292,
                      "total": 2.5052,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.411512
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.082688
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.043438
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": -0.02929
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": 0.024535
                        }
                      ],
                      "others_margin": -0.011598
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.0130350589752197,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4238
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.099
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0476
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0364
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0334
                        }
                      ],
                      "others": 0.0236,
                      "total": 1.013,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.406128
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.110689
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.049173
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.037416
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.034305
                        }
                      ],
                      "others_margin": 0.023609
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.3947,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0561
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0183
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0179
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0171
                        },
                        {
                          "name": "progressive_carries_p90",
                          "contribution": 0.0168
                        }
                      ],
                      "others": -0.0253,
                      "total": 0.3947,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.0561
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.01828
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.017921
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.017074
                        },
                        {
                          "name": "progressive_carries_p90",
                          "margin": 0.016793
                        }
                      ],
                      "others_margin": -0.025345
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.991749286651611,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1068
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0546
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0167
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0148
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0132
                        }
                      ],
                      "others": 0.0838,
                      "total": 6.9917,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.106826
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.054581
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.016693
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.014839
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.013158
                        }
                      ],
                      "others_margin": 0.083855
                    }
                  }
                ],
                "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": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.9917,
                "minutes": 73,
                "total_pass": 72,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 4,
                "accurate_long_balls": 0,
                "total_own_half_passes": 41,
                "accurate_own_half_passes": 40,
                "total_opp_half_passes": 31,
                "accurate_opp_half_passes": 27,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 83,
                "possession_lost": 4.8132,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0214,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 28,
                "total_progression": 100,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 32000000,
                "quality_factor": 0.732,
                "boost_factor": 1.0696
              }
            },
            {
              "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": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9917,
                "minutes": 15,
                "total_pass": 12,
                "accurate_pass": 11,
                "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": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 0.7882,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0035,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 16,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "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": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9917,
                "minutes": 15,
                "total_pass": 12,
                "accurate_pass": 11,
                "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": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 0.7882,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0035,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 16,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "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 for display (match squad rank 10 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.9917,
                "minutes": 15,
                "total_pass": 12,
                "accurate_pass": 11,
                "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": 5,
                "accurate_opp_half_passes": 4,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 14,
                "possession_lost": 0.7882,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0035,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 16,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.352,
                "bench_expected_minutes": 14.74,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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": 79.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 1191,
                "fifa_rank": 942.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            }
          ]
        },
        "Rodri": {
          "player_id": 827606,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 16,
          "height": 191,
          "market_value": 50000000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0226,
            "assist_rate": 0.0249,
            "assists": 0,
            "expected_goals": 0.0335,
            "goal_rate": 0.021,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 7.302,
            "minutes": 24,
            "total_pass": 19,
            "accurate_pass": 18,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_own_half_passes": 8,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 11,
            "accurate_opp_half_passes": 10,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 21,
            "possession_lost": 1.5273,
            "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,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 6,
            "total_progression": 22,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.568,
            "bench_expected_minutes": 23.5,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "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": 90.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 90,
                "rating": 8.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.6712,
                "expected_assists": 0.0412,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 73,
                "accurate_pass": 67,
                "key_pass": 1,
                "tackles": 5,
                "tackles_won": 4,
                "interceptions": 3,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 6,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 61,
                "rating": 8.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0576,
                "expected_assists": 0.3232,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 61,
                "accurate_pass": 55,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 2,
                "aerial_won": 1,
                "duels_won": 2,
                "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": 16416329.0,
              "match_date": "2026-09-13",
              "home_team": "Levante UD",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Levante UD",
              "stats": {
                "minutes": 90,
                "rating": 7.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0662,
                "total_shots": 0,
                "total_pass": 117,
                "accurate_pass": 111,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 7,
                "ball_recovery": 8
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 62,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0795,
                "expected_assists": 0.0737,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 83,
                "accurate_pass": 81,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 1,
                "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"
            },
            {
              "match_id": 16416295.0,
              "match_date": "2026-08-31",
              "home_team": "FC Barcelona",
              "away_team": "Rayo Vallecano",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Rayo Vallecano",
              "stats": {
                "minutes": 26,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0089,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 31,
                "tackles": 2,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2
              },
              "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": 16421059.0,
              "match_date": "2026-08-27",
              "home_team": "FC Barcelona",
              "away_team": "Athletic Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Athletic Club",
              "stats": {
                "minutes": 27,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0267,
                "total_shots": 0,
                "total_pass": 26,
                "accurate_pass": 23,
                "key_pass": 1,
                "clearances": 1,
                "ball_recovery": 1
              },
              "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": 50,
            "combined_rank_score": 60.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 113.0,
            "sofascore_rating": 7.43,
            "sofascore_appearances": 21.0,
            "fifa_rank": 8.0,
            "fifa_overall": 90.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.302,
            "source_file": "data/player_rankings.csv",
            "player_name": "Rodri",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bukayo Saka",
                  "ranking": 45
                },
                {
                  "player_name": "Federico Valverde",
                  "ranking": 46
                },
                {
                  "player_name": "Ayrton Lucas",
                  "ranking": 47
                },
                {
                  "player_name": "Giorgian de Arrascaeta",
                  "ranking": 48
                },
                {
                  "player_name": "Rayan Cherki",
                  "ranking": 49
                }
              ],
              "lower": [
                {
                  "player_name": "Matheus Serafim",
                  "ranking": 51
                },
                {
                  "player_name": "Matheus Frizzo",
                  "ranking": 52
                },
                {
                  "player_name": "Florian Wirtz",
                  "ranking": 53
                },
                {
                  "player_name": "Martín Zubimendi",
                  "ranking": 54
                },
                {
                  "player_name": "Luan Dias",
                  "ranking": 55
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.625,
          "history_matches": 6,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.625,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 23.503601607115876,
            "bench_appearance_prob": 0.5683455275961762,
            "market_value_adjustment": 1.0972,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost M_service (6 historical appearances) to 23.5 expected mins (appearance prob 0.57)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0789,
                "assist_rate": 0.0869,
                "assists": 0,
                "expected_goals": 0.117,
                "goal_rate": 0.0733,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.302,
                "minutes": 59,
                "total_pass": 65,
                "accurate_pass": 61,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 4,
                "total_own_half_passes": 27,
                "accurate_own_half_passes": 25,
                "total_opp_half_passes": 38,
                "accurate_opp_half_passes": 36,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 74,
                "possession_lost": 5.33,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 22,
                "total_progression": 75,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 8.2
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 61.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 8.3
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Levante UD",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 7.9
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 62.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Rayo Vallecano",
                    "minutes": 26.0,
                    "is_starting": false,
                    "weight": 0.1257,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-27",
                    "opponent": "Athletic Club",
                    "minutes": 27.0,
                    "is_starting": false,
                    "weight": 0.1069,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.8343,
                  "expectedAssists": 0.1025,
                  "creative_index": 0.4235,
                  "creative_efficiency": 0.0568,
                  "shotValueNormalized": -0.0604,
                  "dribbleValueNormalized": 0.1844
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.8433091044425964,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.1089
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.034
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0337
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0312
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0195
                        }
                      ],
                      "others": -0.0249,
                      "total": 0.8433,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.124992
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.042482
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.042157
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.037487
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.022709
                        }
                      ],
                      "others_margin": -0.029152
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.07889416068792343,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0078
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.006
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0046
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0031
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0028
                        }
                      ],
                      "others": 0.0004,
                      "total": 0.0789,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.085877
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.065244
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.053603
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.037819
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035529
                        }
                      ],
                      "others_margin": 0.005862
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08692754060029984,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0086
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0064
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0025
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0025
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0023
                        }
                      ],
                      "others": -0.0109,
                      "total": 0.0869,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.096066
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.066155
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.02542
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.0248
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.023194
                        }
                      ],
                      "others_margin": -0.117646
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.11699710786342621,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0306
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.012
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.008
                        },
                        {
                          "name": "totalProgression",
                          "contribution": 0.0059
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0055
                        }
                      ],
                      "others": -0.0314,
                      "total": 0.117,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.183288
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.082058
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.055451
                        },
                        {
                          "name": "totalProgression",
                          "margin": 0.038804
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.036221
                        }
                      ],
                      "others_margin": -0.237985
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.07329407334327698,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0275
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0118
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0072
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0047
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0036
                        }
                      ],
                      "others": -0.0198,
                      "total": 0.0733,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.206085
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.102828
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.068536
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.04709
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.03774
                        }
                      ],
                      "others_margin": -0.239831
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.24095305800437927,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0185
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0165
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.015
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0089
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0081
                        }
                      ],
                      "others": -0.0294,
                      "total": 0.241,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "numberOfSprints",
                          "margin": -0.056466
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.052964
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.050766
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.031366
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.029594
                        }
                      ],
                      "others_margin": -0.115601
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.7813530580043793,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0802
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0477
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": -0.0288
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0236
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0189
                        }
                      ],
                      "others": -0.0575,
                      "total": 0.7814,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.080207
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.047748
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": -0.028757
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.023623
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.018912
                        }
                      ],
                      "others_margin": -0.057471
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.302048206329346,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.1295
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0553
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0443
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": 0.0309
                        },
                        {
                          "name": "accuratePass",
                          "contribution": 0.0228
                        }
                      ],
                      "others": 0.1594,
                      "total": 7.302,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.129522
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.05527
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.044259
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": 0.03094
                        },
                        {
                          "name": "accuratePass",
                          "margin": 0.022805
                        }
                      ],
                      "others_margin": 0.159496
                    }
                  }
                ],
                "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.0972, quality 0.824)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0866,
                "assist_rate": 0.0954,
                "assists": 0,
                "expected_goals": 0.1284,
                "goal_rate": 0.0804,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 7.302,
                "minutes": 59,
                "total_pass": 72,
                "accurate_pass": 67,
                "duels_won": 4,
                "total_long_balls": 5,
                "accurate_long_balls": 5,
                "total_own_half_passes": 29,
                "accurate_own_half_passes": 27,
                "total_opp_half_passes": 42,
                "accurate_opp_half_passes": 40,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 82,
                "possession_lost": 5.8483,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 24,
                "total_progression": 83,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 50000000,
                "quality_factor": 0.8241,
                "boost_factor": 1.0972
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 23.5 expected minutes (appearance prob 0.57)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0226,
                "assist_rate": 0.0249,
                "assists": 0,
                "expected_goals": 0.0335,
                "goal_rate": 0.021,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.302,
                "minutes": 24,
                "total_pass": 19,
                "accurate_pass": 18,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 1.5273,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.568,
                "bench_expected_minutes": 23.5
              },
              "params": {
                "expected_minutes": 23.5,
                "appearance_probability": 0.568
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0226,
                "assist_rate": 0.0249,
                "assists": 0,
                "expected_goals": 0.0335,
                "goal_rate": 0.021,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.302,
                "minutes": 24,
                "total_pass": 19,
                "accurate_pass": 18,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 1.5273,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.568,
                "bench_expected_minutes": 23.5
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 1 by projected rating, fifa_overall 90.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0226,
                "assist_rate": 0.0249,
                "assists": 0,
                "expected_goals": 0.0335,
                "goal_rate": 0.021,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 7.302,
                "minutes": 24,
                "total_pass": 19,
                "accurate_pass": 18,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 11,
                "accurate_opp_half_passes": 10,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 21,
                "possession_lost": 1.5273,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 6,
                "total_progression": 22,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.568,
                "bench_expected_minutes": 23.5,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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": 90.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 50,
                "fifa_rank": 8.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 90.0
              }
            }
          ]
        },
        "Frenkie de Jong": {
          "player_id": 795222,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 21,
          "height": 180,
          "market_value": 32000000,
          "stats": {
            "key_pass": 1,
            "assist_rate": 0.0437,
            "assists": 0,
            "expected_assists": 0.0491,
            "expected_goals": 0.0314,
            "total_shots": 0,
            "total_pass": 16,
            "accurate_pass": 13,
            "ball_recovery": 2,
            "duels_won": 2,
            "rating": 7.3,
            "minutes": 23,
            "total_long_balls": 2,
            "accurate_long_balls": 1,
            "total_own_half_passes": 6,
            "accurate_own_half_passes": 5,
            "total_opp_half_passes": 6,
            "accurate_opp_half_passes": 5,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 20,
            "possession_lost": 2.5967,
            "dispossessed": 1.0,
            "duels_lost": 1,
            "aerial_won": 0,
            "aerial_lost": 1,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 1,
            "clearances": 0,
            "total_contest": 1,
            "won_contest": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "goal_rate": 0.0231,
            "goals": 0,
            "shots_on_target": 0,
            "shots_off_target": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0213,
            "ball_carries": 10,
            "total_progression": 25,
            "progressive_carries": 2,
            "bench_appearance_probability": 0.552,
            "bench_expected_minutes": 23.14,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "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": 86.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 59,
            "combined_rank_score": 74.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 47.0,
            "sofascore_rating": 7.7714,
            "sofascore_appearances": 7.0,
            "fifa_rank": 101.0,
            "fifa_overall": 86.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.3,
            "source_file": "data/player_rankings.csv",
            "player_name": "Frenkie de Jong",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Martín Zubimendi",
                  "ranking": 54
                },
                {
                  "player_name": "Luan Dias",
                  "ranking": 55
                },
                {
                  "player_name": "César Yanis",
                  "ranking": 56
                },
                {
                  "player_name": "Pau Cubarsí",
                  "ranking": 57
                },
                {
                  "player_name": "Declan Rice",
                  "ranking": 58
                }
              ],
              "lower": [
                {
                  "player_name": "Lucas Paquetá",
                  "ranking": 60
                },
                {
                  "player_name": "Rúben Dias",
                  "ranking": 61
                },
                {
                  "player_name": "Luis Díaz",
                  "ranking": 62
                },
                {
                  "player_name": "Max Weiss",
                  "ranking": 63
                },
                {
                  "player_name": "Paul Villero",
                  "ranking": 64
                }
              ]
            }
          },
          "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"
            ],
            "bench_expected_minutes": 23.138792805130343,
            "bench_appearance_prob": 0.5517633093241064,
            "market_value_adjustment": 0.732,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€32,000,000) scaled to 23.1 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position M (quality 0.73)",
              "stats": {
                "key_pass": 2,
                "assist_rate": 0.17,
                "assists": 0,
                "expected_assists": 0.191,
                "expected_goals": 0.122,
                "total_shots": 2,
                "total_pass": 62,
                "accurate_pass": 50,
                "ball_recovery": 6,
                "duels_won": 8,
                "rating": 7.3,
                "minutes": 90,
                "total_long_balls": 6,
                "accurate_long_balls": 3,
                "total_own_half_passes": 25,
                "accurate_own_half_passes": 20,
                "total_opp_half_passes": 25,
                "accurate_opp_half_passes": 19,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 76,
                "possession_lost": 10.1,
                "dispossessed": 1.0,
                "duels_lost": 5,
                "aerial_won": 2,
                "aerial_lost": 1,
                "interceptions": 1,
                "tackles_won": 2,
                "tackles": 2,
                "clearances": 1,
                "total_contest": 5,
                "won_contest": 3,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "goal_rate": 0.09,
                "goals": 0,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.083,
                "ball_carries": 37,
                "total_progression": 99,
                "progressive_carries": 9
              },
              "params": {
                "market_value_eur": 32000000,
                "quality_factor": 0.732
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 23.1 expected minutes (appearance prob 0.55)",
              "stats": {
                "key_pass": 1,
                "assist_rate": 0.0437,
                "assists": 0,
                "expected_assists": 0.0491,
                "expected_goals": 0.0314,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 13,
                "ball_recovery": 2,
                "duels_won": 2,
                "rating": 7.3,
                "minutes": 23,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 20,
                "possession_lost": 2.5967,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0231,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0213,
                "ball_carries": 10,
                "total_progression": 25,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.552,
                "bench_expected_minutes": 23.14
              },
              "params": {
                "expected_minutes": 23.14,
                "appearance_probability": 0.552
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "assist_rate": 0.0437,
                "assists": 0,
                "expected_assists": 0.0491,
                "expected_goals": 0.0314,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 13,
                "ball_recovery": 2,
                "duels_won": 2,
                "rating": 7.3,
                "minutes": 23,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 20,
                "possession_lost": 2.5967,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0231,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0213,
                "ball_carries": 10,
                "total_progression": 25,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.552,
                "bench_expected_minutes": 23.14
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 2 by projected rating, fifa_overall 86.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "assist_rate": 0.0437,
                "assists": 0,
                "expected_assists": 0.0491,
                "expected_goals": 0.0314,
                "total_shots": 0,
                "total_pass": 16,
                "accurate_pass": 13,
                "ball_recovery": 2,
                "duels_won": 2,
                "rating": 7.3,
                "minutes": 23,
                "total_long_balls": 2,
                "accurate_long_balls": 1,
                "total_own_half_passes": 6,
                "accurate_own_half_passes": 5,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 20,
                "possession_lost": 2.5967,
                "dispossessed": 1.0,
                "duels_lost": 1,
                "aerial_won": 0,
                "aerial_lost": 1,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 1,
                "clearances": 0,
                "total_contest": 1,
                "won_contest": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "goal_rate": 0.0231,
                "goals": 0,
                "shots_on_target": 0,
                "shots_off_target": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0213,
                "ball_carries": 10,
                "total_progression": 25,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.552,
                "bench_expected_minutes": 23.14,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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": 86.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 59,
                "fifa_rank": 101.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 86.0
              }
            }
          ]
        },
        "Gabriel Jesus": {
          "player_id": 794839,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 175,
          "market_value": 17600000,
          "stats": {
            "expected_goals": 0.0913,
            "goal_rate": 0.0577,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0228,
            "key_pass": 0,
            "rating": 6.8134,
            "minutes": 26,
            "total_pass": 2,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 3,
            "possession_lost": 0.7949,
            "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,
            "assist_rate": 0.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": 1,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.589,
            "bench_expected_minutes": 25.96,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0514,
            "projected_assists": 0,
            "assist_probability": 0.0133,
            "finishing_factor": 0.9809,
            "creation_factor": 0.8157,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 10,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 21,
                "rating": 7.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1758,
                "expected_assists": 0.0021,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 6,
                "accurate_pass": 6,
                "tackles": 1,
                "duels_won": 1
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 9,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.123,
                "expected_assists": 0.222,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 11,
                "key_pass": 1,
                "duels_won": 2
              },
              "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": 2126,
            "combined_rank_score": 803.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 745.0,
            "sofascore_rating": 6.6667,
            "sofascore_appearances": 6.0,
            "fifa_rank": 862.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8134,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gabriel Jesus",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Edvinas Girdvainis",
                  "ranking": 2121
                },
                {
                  "player_name": "Son Seung-Min",
                  "ranking": 2122
                },
                {
                  "player_name": "Diogo Dalot",
                  "ranking": 2123
                },
                {
                  "player_name": "Ainsley Maitland-Niles",
                  "ranking": 2124
                },
                {
                  "player_name": "Crysencio Summerville",
                  "ranking": 2125
                }
              ],
              "lower": [
                {
                  "player_name": "Sepp van den Berg",
                  "ranking": 2127
                },
                {
                  "player_name": "Chan-hyung Lee",
                  "ranking": 2128
                },
                {
                  "player_name": "Sarvar Abduhamidov",
                  "ranking": 2129
                },
                {
                  "player_name": "Oleksiy Shchebetun",
                  "ranking": 2130
                },
                {
                  "player_name": "Nurzhakhon Muzaffarov",
                  "ranking": 2131
                }
              ]
            }
          },
          "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": 25.963015995530526,
            "bench_appearance_prob": 0.5892279997968422,
            "market_value_adjustment": 1.032,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 26.0 expected mins (appearance prob 0.59)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2007,
                "goal_rate": 0.1937,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.038,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 13,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "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,
                "assist_rate": 0.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": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 10.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 21.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.3304,
                  "totalShots": 0.8921,
                  "minutesPlayed": 13.3537,
                  "shotValueNormalized": 0.0669,
                  "accuratePass": 5.4606,
                  "expectedAssists": 0.0633
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2007443606853485,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0486
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0302
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0225
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0185
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0098
                        }
                      ],
                      "others": -0.0323,
                      "total": 0.2007,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.143963
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.101045
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.082423
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.073235
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.041059
                        }
                      ],
                      "others_margin": -0.149534
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.19368065893650055,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0302
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0247
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0194
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0122
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0066
                        }
                      ],
                      "others": -0.0386,
                      "total": 0.1937,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.11131
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.101461
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.080346
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.049752
                        },
                        {
                          "name": "duelLost",
                          "margin": -0.028072
                        }
                      ],
                      "others_margin": -0.1817
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4137679636478424,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1309
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0699
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0566
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0208
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0151
                        }
                      ],
                      "others": -0.0517,
                      "total": 0.4138,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.251437
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.142009
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.113499
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.045063
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.032887
                        }
                      ],
                      "others_margin": -0.117686
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.021599292755127,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1699
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1572
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0781
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.064
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0523
                        }
                      ],
                      "others": -0.0483,
                      "total": 1.0216,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.169897
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.157205
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.078059
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.064036
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.052339
                        }
                      ],
                      "others_margin": -0.048178
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.037986986339092255,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0088
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0056
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0033
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0031
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0019
                        }
                      ],
                      "others": -0.0143,
                      "total": 0.038,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.158144
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.103276
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.060718
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.060062
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.037122
                        }
                      ],
                      "others_margin": -0.319362
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.3750607967376709,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2144
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0384
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0354
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0163
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0148
                        }
                      ],
                      "others": -0.0842,
                      "total": 0.3751,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.379961
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.086466
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.079886
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.036072
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.032781
                        }
                      ],
                      "others_margin": -0.202552
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.813398838043213,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0465
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.034
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0225
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0178
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0131
                        }
                      ],
                      "others": -0.0413,
                      "total": 6.8134,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.046466
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.033997
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.022483
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.017804
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.01307
                        }
                      ],
                      "others_margin": -0.041248
                    }
                  }
                ],
                "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.0320, quality 0.607)",
              "stats": {
                "expected_goals": 0.2072,
                "goal_rate": 0.1999,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0392,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 13,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.7556,
                "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,
                "assist_rate": 0.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": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 17600000,
                "quality_factor": 0.6068,
                "boost_factor": 1.032
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.0 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0598,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0113,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96
              },
              "params": {
                "expected_minutes": 25.96,
                "appearance_probability": 0.589
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0598,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0113,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96
              },
              "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.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 0.589
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0598,
                  "after": 0.0913
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0113,
                  "after": 0.0228
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 17 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2126,
                "fifa_rank": 862.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0514,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0514,
                "scorer_weight": 0.0527,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0135,
                "finishing_factor": 0.9809,
                "appearance_weight": 0.589,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0514,
                "projected_assists": 0,
                "assist_probability": 0.0133,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0133,
                "provider_weight": 0.011,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0047,
                "creation_factor": 0.8157,
                "appearance_weight": 0.589,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Roony Bardghji": {
          "player_id": 1162107,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 173,
          "market_value": 15500000,
          "stats": {
            "expected_goals": 0.1238,
            "goal_rate": 0.0518,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0591,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 7.1,
            "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": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 2.6163,
            "dispossessed": 1.2,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0259,
            "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.0943,
            "offsides": 1,
            "ball_carries": 6,
            "total_progression": 16,
            "progressive_carries": 2,
            "bench_appearance_probability": 0.585,
            "bench_expected_minutes": 25.88,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0681,
            "projected_assists": 0,
            "assist_probability": 0.0336,
            "finishing_factor": 0.8,
            "creation_factor": 0.9571,
            "fifa_overall": 74.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3803,
            "combined_rank_score": 1804.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 702.0,
            "sofascore_rating": 6.6944,
            "sofascore_appearances": 21.0,
            "fifa_rank": 2907.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1,
            "source_file": "data/player_rankings.csv",
            "player_name": "Roony Bardghji",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jaden Philogene",
                  "ranking": 3798
                },
                {
                  "player_name": "Kenny McLean",
                  "ranking": 3799
                },
                {
                  "player_name": "Carlos Izquierdoz",
                  "ranking": 3800
                },
                {
                  "player_name": "Bartłomiej Drągowski",
                  "ranking": 3801
                },
                {
                  "player_name": "Eliesse Ben Seghir",
                  "ranking": 3802
                }
              ],
              "lower": [
                {
                  "player_name": "Nilson Angulo",
                  "ranking": 3804
                },
                {
                  "player_name": "James McAtee",
                  "ranking": 3805
                },
                {
                  "player_name": "Jens-Lys Cajuste",
                  "ranking": 3806
                },
                {
                  "player_name": "Yáser Asprilla",
                  "ranking": 3807
                },
                {
                  "player_name": "Stephen Eustaquio",
                  "ranking": 3808
                }
              ]
            }
          },
          "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.875021941280785,
            "bench_appearance_prob": 0.5852282700582175,
            "market_value_adjustment": 0.5846,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€15,500,000) scaled to 25.9 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.58)",
              "stats": {
                "expected_goals": 0.282,
                "goal_rate": 0.18,
                "goals": 0,
                "total_shots": 3,
                "shots_on_target": 2,
                "expected_assists": 0.102,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.1,
                "minutes": 90,
                "total_pass": 31,
                "accurate_pass": 23,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 45,
                "possession_lost": 9.1,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.215,
                "offsides": 1,
                "ball_carries": 22,
                "total_progression": 54,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 15500000,
                "quality_factor": 0.5846
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.9 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0811,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0293,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0618,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88
              },
              "params": {
                "expected_minutes": 25.88,
                "appearance_probability": 0.585
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0811,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0293,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0618,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88
              },
              "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.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 0.585
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0811,
                  "after": 0.1238
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0293,
                  "after": 0.0591
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 7 by projected rating, fifa_overall 74.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3803,
                "fifa_rank": 2907.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0681,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0681,
                "scorer_weight": 0.0579,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0149,
                "finishing_factor": 0.8,
                "appearance_weight": 0.585,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0681,
                "projected_assists": 0,
                "assist_probability": 0.0336,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0336,
                "provider_weight": 0.0331,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0143,
                "creation_factor": 0.9571,
                "appearance_weight": 0.585,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        }
      },
      "substitutes": {
        "Gabriel Jesus": {
          "player_id": 794839,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 175,
          "market_value": 17600000,
          "stats": {
            "expected_goals": 0.0913,
            "goal_rate": 0.0577,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0228,
            "key_pass": 0,
            "rating": 6.8134,
            "minutes": 26,
            "total_pass": 2,
            "accurate_pass": 2,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 3,
            "possession_lost": 0.7949,
            "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,
            "assist_rate": 0.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": 1,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.589,
            "bench_expected_minutes": 25.96,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0514,
            "projected_assists": 0,
            "assist_probability": 0.0133,
            "finishing_factor": 0.9809,
            "creation_factor": 0.8157,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416349.0,
              "match_date": "2026-09-19",
              "home_team": "Sevilla",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Sevilla",
              "stats": {
                "minutes": 10,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0006,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416346.0,
              "match_date": "2026-09-16",
              "home_team": "FC Barcelona",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "FC Barcelona",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 21,
                "rating": 7.4,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1758,
                "expected_assists": 0.0021,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 6,
                "accurate_pass": 6,
                "tackles": 1,
                "duels_won": 1
              },
              "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": 16416325.0,
              "match_date": "2026-09-06",
              "home_team": "Valencia",
              "away_team": "FC Barcelona",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "FC Barcelona",
              "opponent": "Valencia",
              "stats": {
                "minutes": 9,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.123,
                "expected_assists": 0.222,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 14,
                "accurate_pass": 11,
                "key_pass": 1,
                "duels_won": 2
              },
              "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": 2126,
            "combined_rank_score": 803.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 745.0,
            "sofascore_rating": 6.6667,
            "sofascore_appearances": 6.0,
            "fifa_rank": 862.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8134,
            "source_file": "data/player_rankings.csv",
            "player_name": "Gabriel Jesus",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Edvinas Girdvainis",
                  "ranking": 2121
                },
                {
                  "player_name": "Son Seung-Min",
                  "ranking": 2122
                },
                {
                  "player_name": "Diogo Dalot",
                  "ranking": 2123
                },
                {
                  "player_name": "Ainsley Maitland-Niles",
                  "ranking": 2124
                },
                {
                  "player_name": "Crysencio Summerville",
                  "ranking": 2125
                }
              ],
              "lower": [
                {
                  "player_name": "Sepp van den Berg",
                  "ranking": 2127
                },
                {
                  "player_name": "Chan-hyung Lee",
                  "ranking": 2128
                },
                {
                  "player_name": "Sarvar Abduhamidov",
                  "ranking": 2129
                },
                {
                  "player_name": "Oleksiy Shchebetun",
                  "ranking": 2130
                },
                {
                  "player_name": "Nurzhakhon Muzaffarov",
                  "ranking": 2131
                }
              ]
            }
          },
          "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": 25.963015995530526,
            "bench_appearance_prob": 0.5892279997968422,
            "market_value_adjustment": 1.032,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (3 historical appearances) to 26.0 expected mins (appearance prob 0.59)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.2007,
                "goal_rate": 0.1937,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.038,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 13,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 11,
                "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,
                "assist_rate": 0.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": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-19",
                    "opponent": "Sevilla",
                    "minutes": 10.0,
                    "is_starting": true,
                    "weight": 0.3887,
                    "rating": 6.1
                  },
                  {
                    "match_date": "2026-09-16",
                    "opponent": "Real Racing Club",
                    "minutes": 21.0,
                    "is_starting": true,
                    "weight": 0.3304,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-06",
                    "opponent": "Valencia",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.2809,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 3.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.3304,
                  "totalShots": 0.8921,
                  "minutesPlayed": 13.3537,
                  "shotValueNormalized": 0.0669,
                  "accuratePass": 5.4606,
                  "expectedAssists": 0.0633
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2007443606853485,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0486
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0302
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0225
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0185
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0098
                        }
                      ],
                      "others": -0.0323,
                      "total": 0.2007,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.143963
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.101045
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.082423
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.073235
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.041059
                        }
                      ],
                      "others_margin": -0.149534
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.19368065893650055,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0302
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0247
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0194
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0122
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0066
                        }
                      ],
                      "others": -0.0386,
                      "total": 0.1937,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.11131
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.101461
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.080346
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.049752
                        },
                        {
                          "name": "duelLost",
                          "margin": -0.028072
                        }
                      ],
                      "others_margin": -0.1817
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4137679636478424,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1309
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0699
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0566
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0208
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0151
                        }
                      ],
                      "others": -0.0517,
                      "total": 0.4138,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.251437
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.142009
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.113499
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.045063
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.032887
                        }
                      ],
                      "others_margin": -0.117686
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.021599292755127,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1699
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1572
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0781
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.064
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0523
                        }
                      ],
                      "others": -0.0483,
                      "total": 1.0216,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.169897
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.157205
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.078059
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.064036
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.052339
                        }
                      ],
                      "others_margin": -0.048178
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.037986986339092255,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "totalPass",
                          "contribution": -0.0088
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0056
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0033
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0031
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0019
                        }
                      ],
                      "others": -0.0143,
                      "total": 0.038,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "totalPass",
                          "margin": -0.158144
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.103276
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.060718
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.060062
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.037122
                        }
                      ],
                      "others_margin": -0.319362
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.3750607967376709,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2144
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0384
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0354
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0163
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": 0.0148
                        }
                      ],
                      "others": -0.0842,
                      "total": 0.3751,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.379961
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.086466
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.079886
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.036072
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": 0.032781
                        }
                      ],
                      "others_margin": -0.202552
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.813398838043213,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0465
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.034
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0225
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0178
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0131
                        }
                      ],
                      "others": -0.0413,
                      "total": 6.8134,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.046466
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.033997
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.022483
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.017804
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.01307
                        }
                      ],
                      "others_margin": -0.041248
                    }
                  }
                ],
                "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.0320, quality 0.607)",
              "stats": {
                "expected_goals": 0.2072,
                "goal_rate": 0.1999,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0392,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 13,
                "total_pass": 7,
                "accurate_pass": 6,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 6,
                "accurate_opp_half_passes": 5,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 12,
                "possession_lost": 2.7556,
                "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,
                "assist_rate": 0.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": 0,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 17600000,
                "quality_factor": 0.6068,
                "boost_factor": 1.032
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 26.0 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0598,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0113,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96
              },
              "params": {
                "expected_minutes": 25.96,
                "appearance_probability": 0.589
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0598,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0113,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96
              },
              "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.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 0.589
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0598,
                  "after": 0.0913
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0113,
                  "after": 0.0228
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 17 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2126,
                "fifa_rank": 862.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0514,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0514,
                "scorer_weight": 0.0527,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0135,
                "finishing_factor": 0.9809,
                "appearance_weight": 0.589,
                "weight_rank": 9,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.0913,
                "goal_rate": 0.0577,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0228,
                "key_pass": 0,
                "rating": 6.8134,
                "minutes": 26,
                "total_pass": 2,
                "accurate_pass": 2,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 3,
                "possession_lost": 0.7949,
                "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,
                "assist_rate": 0.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": 1,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.589,
                "bench_expected_minutes": 25.96,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0514,
                "projected_assists": 0,
                "assist_probability": 0.0133,
                "finishing_factor": 0.9809,
                "creation_factor": 0.8157,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0133,
                "provider_weight": 0.011,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0047,
                "creation_factor": 0.8157,
                "appearance_weight": 0.589,
                "weight_rank": 12,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        },
        "Roony Bardghji": {
          "player_id": 1162107,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 19,
          "height": 173,
          "market_value": 15500000,
          "stats": {
            "expected_goals": 0.1238,
            "goal_rate": 0.0518,
            "goals": 0,
            "total_shots": 1,
            "shots_on_target": 0,
            "expected_assists": 0.0591,
            "duels_won": 1,
            "aerial_won": 0,
            "rating": 7.1,
            "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": 3,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 13,
            "possession_lost": 2.6163,
            "dispossessed": 1.2,
            "duels_lost": 1,
            "aerial_lost": 1,
            "total_contest": 2,
            "won_contest": 1,
            "ball_recovery": 1,
            "challenges_lost": 1,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0259,
            "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.0943,
            "offsides": 1,
            "ball_carries": 6,
            "total_progression": 16,
            "progressive_carries": 2,
            "bench_appearance_probability": 0.585,
            "bench_expected_minutes": 25.88,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 2,
            "projected_substitution_expected_count": 2.654,
            "projected_substitution_game_state_adjustment": -1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0681,
            "projected_assists": 0,
            "assist_probability": 0.0336,
            "finishing_factor": 0.8,
            "creation_factor": 0.9571,
            "fifa_overall": 74.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3803,
            "combined_rank_score": 1804.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 702.0,
            "sofascore_rating": 6.6944,
            "sofascore_appearances": 21.0,
            "fifa_rank": 2907.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 7.1,
            "source_file": "data/player_rankings.csv",
            "player_name": "Roony Bardghji",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jaden Philogene",
                  "ranking": 3798
                },
                {
                  "player_name": "Kenny McLean",
                  "ranking": 3799
                },
                {
                  "player_name": "Carlos Izquierdoz",
                  "ranking": 3800
                },
                {
                  "player_name": "Bartłomiej Drągowski",
                  "ranking": 3801
                },
                {
                  "player_name": "Eliesse Ben Seghir",
                  "ranking": 3802
                }
              ],
              "lower": [
                {
                  "player_name": "Nilson Angulo",
                  "ranking": 3804
                },
                {
                  "player_name": "James McAtee",
                  "ranking": 3805
                },
                {
                  "player_name": "Jens-Lys Cajuste",
                  "ranking": 3806
                },
                {
                  "player_name": "Yáser Asprilla",
                  "ranking": 3807
                },
                {
                  "player_name": "Stephen Eustaquio",
                  "ranking": 3808
                }
              ]
            }
          },
          "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.875021941280785,
            "bench_appearance_prob": 0.5852282700582175,
            "market_value_adjustment": 0.5846,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection from market-value prior (€15,500,000) scaled to 25.9 expected mins."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.58)",
              "stats": {
                "expected_goals": 0.282,
                "goal_rate": 0.18,
                "goals": 0,
                "total_shots": 3,
                "shots_on_target": 2,
                "expected_assists": 0.102,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.1,
                "minutes": 90,
                "total_pass": 31,
                "accurate_pass": 23,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 45,
                "possession_lost": 9.1,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.215,
                "offsides": 1,
                "ball_carries": 22,
                "total_progression": 54,
                "progressive_carries": 6
              },
              "params": {
                "market_value_eur": 15500000,
                "quality_factor": 0.5846
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.9 expected minutes (appearance prob 0.59)",
              "stats": {
                "expected_goals": 0.0811,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0293,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0618,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88
              },
              "params": {
                "expected_minutes": 25.88,
                "appearance_probability": 0.585
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0811,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0293,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0618,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88
              },
              "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.94 (squad xG sum 2.5838, xG scale 1.5265, xA scale 2.0186, team xA 2.56 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571
              },
              "params": {
                "team_lambda": 3.944,
                "squad_xg_sum": 2.5838,
                "squad_xa_sum": 1.27,
                "team_expected_assists": 2.5636,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 1.5265,
                "xa_scale": 2.0186,
                "opponent_lambda": 0.65,
                "scoreline_reset": true,
                "appearance_weight": 0.585
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0811,
                  "after": 0.1238
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0293,
                  "after": 0.0591
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 7 by projected rating, fifa_overall 74.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "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,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3803,
                "fifa_rank": 2907.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation: 3 projected goals distributed by scorer weight (xG x finishing x appearance)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0681,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_goals": 3,
                "goals_allocated": 0,
                "goal_probability": 0.0681,
                "scorer_weight": 0.0579,
                "squad_weight_total": 3.8932,
                "weight_share": 0.0149,
                "finishing_factor": 0.8,
                "appearance_weight": 0.585,
                "weight_rank": 8,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.7684,
                    "already": 0,
                    "effective_weight": 0.7684,
                    "runner_up": "Raphinha",
                    "runner_up_effective_weight": 0.6925
                  },
                  {
                    "n": 2,
                    "player": "Raphinha",
                    "weight": 0.6925,
                    "already": 0,
                    "effective_weight": 0.6925,
                    "runner_up": "Anthony Gordon",
                    "runner_up_effective_weight": 0.6713
                  },
                  {
                    "n": 3,
                    "player": "Anthony Gordon",
                    "weight": 0.6713,
                    "already": 0,
                    "effective_weight": 0.6713,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.6528
                  }
                ]
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation: 2 projected assists distributed by provider weight (xA x creation x appearance; nobody assists his own goal)",
              "stats": {
                "expected_goals": 0.1238,
                "goal_rate": 0.0518,
                "goals": 0,
                "total_shots": 1,
                "shots_on_target": 0,
                "expected_assists": 0.0591,
                "duels_won": 1,
                "aerial_won": 0,
                "rating": 7.1,
                "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": 3,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 13,
                "possession_lost": 2.6163,
                "dispossessed": 1.2,
                "duels_lost": 1,
                "aerial_lost": 1,
                "total_contest": 2,
                "won_contest": 1,
                "ball_recovery": 1,
                "challenges_lost": 1,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0259,
                "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.0943,
                "offsides": 1,
                "ball_carries": 6,
                "total_progression": 16,
                "progressive_carries": 2,
                "bench_appearance_probability": 0.585,
                "bench_expected_minutes": 25.88,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 2,
                "projected_substitution_expected_count": 2.654,
                "projected_substitution_game_state_adjustment": -1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0681,
                "projected_assists": 0,
                "assist_probability": 0.0336,
                "finishing_factor": 0.8,
                "creation_factor": 0.9571,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": true,
                "team_assists": 2,
                "assists_allocated": 0,
                "assist_probability": 0.0336,
                "provider_weight": 0.0331,
                "squad_weight_total": 2.3091,
                "weight_share": 0.0143,
                "creation_factor": 0.9571,
                "appearance_weight": 0.585,
                "weight_rank": 11,
                "eligible_players": 12,
                "allocation_rounds": [
                  {
                    "n": 1,
                    "player": "Lamine Yamal",
                    "weight": 0.3698,
                    "already": 0,
                    "effective_weight": 0.3698,
                    "runner_up": "Dani Olmo",
                    "runner_up_effective_weight": 0.3331
                  },
                  {
                    "n": 2,
                    "player": "Dani Olmo",
                    "weight": 0.3331,
                    "already": 0,
                    "effective_weight": 0.3331,
                    "runner_up": "Karim Adeyemi",
                    "runner_up_effective_weight": 0.299
                  }
                ]
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 3,
        "expected_goals": 3.94,
        "expected_assists": 2.56,
        "total_shots": 21,
        "shots_on_target": 5,
        "total_passes": 470,
        "interceptions": 2,
        "tackles": 3,
        "avg_rating": 6.99,
        "possession_estimated_pct": 54.5,
        "pressing_actions_per_90": 8.8
      }
    },
    "Getafe": {
      "formation": "3-4-2-1",
      "players": {
        "David Soria": {
          "player_id": 604258,
          "position": "G",
          "position_depth": "G",
          "is_starter": true,
          "shirt_number": 13,
          "height": 192,
          "market_value": 2700000,
          "stats": {
            "saves": 3,
            "goals_prevented": 0.0499,
            "rating": 7.2305,
            "minutes": 90,
            "total_pass": 30,
            "accurate_pass": 15,
            "duels_won": 0,
            "total_long_balls": 27,
            "accurate_long_balls": 12,
            "touches": 38,
            "clearances": 0,
            "ball_recovery": 9,
            "high_claims": 0,
            "punches": 0.0,
            "aerial_won": 0,
            "sweeper_actions": 0,
            "sweeper_accurate": 0,
            "saves_inside_box": 2,
            "possession_lost": 15.1404,
            "duels_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "total_own_half_passes": 7,
            "accurate_own_half_passes": 5,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "total_shots": 0,
            "shots_on_target": 0,
            "goalsAgainst": 1.33,
            "shotsOnTargetAgainst": 4.0,
            "cleanSheets": 0.3333,
            "interceptions": 0,
            "tackles_won": 0,
            "crosses_total": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "penaltySave": 0.3333,
            "ownGoals": 0.0,
            "savePct": 66.7,
            "cleanSheetPct": 33.3,
            "minutesPct": 100.0,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "gk_engine_opponent_lambda": 3.7837,
            "shots_faced": 37.5,
            "expected_saves": 9.18,
            "high_pressure_saves": 3.16,
            "opponent_faced": "Anthony Gordon, Karim Adeyemi",
            "matchup_zone": "Goalkeeper shot-stopping context",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "fifa_overall": 80.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.003,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 12,
                "ball_recovery": 8,
                "saves": 4,
                "goals_prevented": 0.2811
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 8.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 12,
                "key_pass": 1,
                "clearances": 2,
                "ball_recovery": 8,
                "saves": 6,
                "goals_prevented": 1.0228
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.006,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 14,
                "clearances": 2,
                "ball_recovery": 8,
                "saves": 2,
                "goals_prevented": -0.3327
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0078,
                "total_shots": 0,
                "total_pass": 42,
                "accurate_pass": 19,
                "clearances": 1,
                "ball_recovery": 8,
                "saves": 2,
                "goals_prevented": 0.2135
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0099,
                "total_shots": 0,
                "total_pass": 32,
                "accurate_pass": 17,
                "clearances": 2,
                "ball_recovery": 14,
                "saves": 1,
                "goals_prevented": 0.0075
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 8.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0021,
                "total_shots": 0,
                "total_pass": 36,
                "accurate_pass": 17,
                "duels_won": 2,
                "ball_recovery": 6,
                "saves": 3,
                "goals_prevented": 1.2046
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0129,
                "total_shots": 0,
                "total_pass": 30,
                "accurate_pass": 16,
                "clearances": 1,
                "ball_recovery": 9,
                "saves": 5,
                "goals_prevented": -0.6513
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 935,
            "combined_rank_score": 436.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 122.0,
            "sofascore_rating": 7.4,
            "sofascore_appearances": 3.0,
            "fifa_rank": 750.0,
            "fifa_overall": 80.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 1,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.2305,
            "source_file": "data/player_rankings.csv",
            "player_name": "David Soria",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Isco",
                  "ranking": 930
                },
                {
                  "player_name": "Karim Benzema",
                  "ranking": 931
                },
                {
                  "player_name": "Julen Agirrezabala",
                  "ranking": 932
                },
                {
                  "player_name": "Koen Casteels",
                  "ranking": 933
                },
                {
                  "player_name": "Danilo Pereira",
                  "ranking": 934
                }
              ],
              "lower": [
                {
                  "player_name": "Jasurbek Jaloliddinov",
                  "ranking": 936
                },
                {
                  "player_name": "Kalidou Koulibaly",
                  "ranking": 937
                },
                {
                  "player_name": "Dragan Ceran",
                  "ranking": 938
                },
                {
                  "player_name": "Benjamín Berríos",
                  "ranking": 939
                },
                {
                  "player_name": "Golib Gaybullaev",
                  "ranking": 940
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.718,
          "history_matches": 7,
          "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": 7,
            "data_confidence": 0.718,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (G_service) evaluated 7 historical appearances across 3 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.20, 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.0509,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 31,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.43,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 6
              },
              "trace": {
                "model": {
                  "position_service": "G",
                  "schema_version": 4,
                  "trained_at": "2026-09-29T10:01:45.250339+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 135,
                    "rows": 3738
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.4
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 8.5
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 8.1
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 7.0
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "save_contribution": 3.7192,
                  "goalkeeperValueNormalized": 0.4104,
                  "sweeper_actions_p90": 0.655,
                  "possessionLostCtrl": 14.8489,
                  "accurateKeeperSweeper": 0.5398,
                  "accurateLongBalls": 11.6722
                },
                "per_target": [
                  {
                    "target": "saves",
                    "predicted": 3.0289061069488525,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0645
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0523
                      },
                      {
                        "name": "saves",
                        "importance": 0.0514
                      },
                      {
                        "name": "accurateLongBalls",
                        "importance": 0.0475
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0445
                      }
                    ],
                    "decomposition": {
                      "base": 2.9861,
                      "items": [
                        {
                          "name": "save_contribution",
                          "contribution": 0.0698
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0665
                        },
                        {
                          "name": "saves",
                          "contribution": 0.0448
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.027
                        },
                        {
                          "name": "distribution_accuracy",
                          "contribution": -0.0212
                        }
                      ],
                      "others": -0.0111,
                      "total": 3.0289,
                      "log_link": true,
                      "margin_base": 1.093963,
                      "item_margins": [
                        {
                          "name": "save_contribution",
                          "margin": 0.023103
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.022
                        },
                        {
                          "name": "saves",
                          "margin": 0.014877
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.008866
                        },
                        {
                          "name": "distribution_accuracy",
                          "margin": -0.006946
                        }
                      ],
                      "others_margin": -0.003662
                    }
                  },
                  {
                    "target": "goalsPrevented",
                    "predicted": 0.0508955717086792,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.0582
                      },
                      {
                        "name": "punches",
                        "importance": 0.0515
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.051
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0478
                      },
                      {
                        "name": "touches",
                        "importance": 0.043
                      }
                    ],
                    "decomposition": {
                      "base": -0.0455,
                      "items": [
                        {
                          "name": "save_contribution",
                          "contribution": 0.0681
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0451
                        },
                        {
                          "name": "inside_box_save_rate",
                          "contribution": 0.0338
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": 0.0303
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0208
                        }
                      ],
                      "others": 0.0301,
                      "total": 0.0509,
                      "log_link": false,
                      "margin_base": -0.045465,
                      "item_margins": [
                        {
                          "name": "save_contribution",
                          "margin": 0.068066
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": -0.04513
                        },
                        {
                          "name": "inside_box_save_rate",
                          "margin": 0.033756
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "margin": 0.030287
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.020786
                        }
                      ],
                      "others_margin": 0.030168
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.230526447296143,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "save_contribution",
                        "importance": 0.075
                      },
                      {
                        "name": "sweeper_actions_p90",
                        "importance": 0.0537
                      },
                      {
                        "name": "goalkeeperValueNormalized",
                        "importance": 0.0529
                      },
                      {
                        "name": "accurateKeeperSweeper",
                        "importance": 0.0478
                      },
                      {
                        "name": "pass_accuracy",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 7.0878,
                      "items": [
                        {
                          "name": "save_contribution",
                          "contribution": 0.0577
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "contribution": -0.0507
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0461
                        },
                        {
                          "name": "accurateLongBalls",
                          "contribution": 0.0242
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "contribution": 0.0165
                        }
                      ],
                      "others": 0.0489,
                      "total": 7.2305,
                      "log_link": false,
                      "margin_base": 7.087778,
                      "item_margins": [
                        {
                          "name": "save_contribution",
                          "margin": 0.057707
                        },
                        {
                          "name": "sweeper_actions_p90",
                          "margin": -0.050673
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.046066
                        },
                        {
                          "name": "accurateLongBalls",
                          "margin": 0.024167
                        },
                        {
                          "name": "totalOwnHalfPasses",
                          "margin": 0.016467
                        }
                      ],
                      "others_margin": 0.049012
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5
              },
              "params": {
                "market_value_eur": 2700000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 4.0,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.3333,
                "ownGoals": 0.0,
                "savePct": 66.7,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 7,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "saves",
                  "before": 2.9721,
                  "after": 2.9556
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 4.0,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.3333,
                "ownGoals": 0.0,
                "savePct": 66.7,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.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.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 4.0,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.3333,
                "ownGoals": 0.0,
                "savePct": 66.7,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "gk_engine_opponent_lambda": 3.7837,
                "shots_faced": 35.9,
                "expected_saves": 8.78,
                "high_pressure_saves": 3.03,
                "opponent_faced": "Anthony Gordon, Karim Adeyemi",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Anthony Gordon, Karim Adeyemi",
                  "matchup_zone": "Goalkeeper shot-stopping context",
                  "opponent_lambda": 3.7837
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 4.0,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.3333,
                "ownGoals": 0.0,
                "savePct": 66.7,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "gk_engine_opponent_lambda": 3.7837,
                "shots_faced": 37.5,
                "expected_saves": 9.18,
                "high_pressure_saves": 3.16,
                "opponent_faced": "Anthony Gordon, Karim Adeyemi",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "shots_faced",
                  "before": 35.9,
                  "after": 37.5
                },
                {
                  "stat": "expected_saves",
                  "before": 8.78,
                  "after": 9.18
                },
                {
                  "stat": "high_pressure_saves",
                  "before": 3.03,
                  "after": 3.16
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 1 by projected rating, fifa_overall 80.0; not used by the projection)",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 4.0,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.3333,
                "ownGoals": 0.0,
                "savePct": 66.7,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "gk_engine_opponent_lambda": 3.7837,
                "shots_faced": 37.5,
                "expected_saves": 9.18,
                "high_pressure_saves": 3.16,
                "opponent_faced": "Anthony Gordon, Karim Adeyemi",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "match_squad_rank": 1,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 935,
                "fifa_rank": 750.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 80.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 4.0,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.3333,
                "ownGoals": 0.0,
                "savePct": 66.7,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "gk_engine_opponent_lambda": 3.7837,
                "shots_faced": 37.5,
                "expected_saves": 9.18,
                "high_pressure_saves": 3.16,
                "opponent_faced": "Anthony Gordon, Karim Adeyemi",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.0,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "saves": 3,
                "goals_prevented": 0.0499,
                "rating": 7.2305,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 15,
                "duels_won": 0,
                "total_long_balls": 27,
                "accurate_long_balls": 12,
                "touches": 38,
                "clearances": 0,
                "ball_recovery": 9,
                "high_claims": 0,
                "punches": 0.0,
                "aerial_won": 0,
                "sweeper_actions": 0,
                "sweeper_accurate": 0,
                "saves_inside_box": 2,
                "possession_lost": 15.1404,
                "duels_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "total_own_half_passes": 7,
                "accurate_own_half_passes": 5,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "shots_on_target": 0,
                "goalsAgainst": 1.33,
                "shotsOnTargetAgainst": 4.0,
                "cleanSheets": 0.3333,
                "interceptions": 0,
                "tackles_won": 0,
                "crosses_total": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "penaltySave": 0.3333,
                "ownGoals": 0.0,
                "savePct": 66.7,
                "cleanSheetPct": 33.3,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "gk_engine_opponent_lambda": 3.7837,
                "shots_faced": 37.5,
                "expected_saves": 9.18,
                "high_pressure_saves": 3.16,
                "opponent_faced": "Anthony Gordon, Karim Adeyemi",
                "matchup_zone": "Goalkeeper shot-stopping context",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "fifa_overall": 80.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.0,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0,
                "creation_factor": 1.0,
                "appearance_weight": 1.0
              }
            }
          ]
        },
        "Andrés García": {
          "player_id": 1457536,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 21,
          "height": 183,
          "market_value": 6500000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 2,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.6779,
            "minutes": 79,
            "total_pass": 24,
            "accurate_pass": 21,
            "duels_won": 3,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 12,
            "accurate_own_half_passes": 11,
            "total_opp_half_passes": 12,
            "accurate_opp_half_passes": 10,
            "crosses_total": 4,
            "crosses_accurate": 0,
            "touches": 46,
            "possession_lost": 12.258,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "aerial_lost": 0,
            "total_contest": 2,
            "won_contest": 0,
            "ball_recovery": 4,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0246,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 13,
            "total_progression": 44,
            "progressive_carries": 2,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 84.4,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 0.8,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.629,
            "opponent_faced": "Anthony Gordon",
            "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.0243,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 73.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1053,
                "expected_assists": 0.0954,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 37,
                "accurate_pass": 31,
                "key_pass": 2,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 69,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0076,
                "total_shots": 0,
                "total_pass": 10,
                "accurate_pass": 10,
                "tackles": 1,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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_type": "played",
              "match_id": "16416326.0",
              "match_date": "2026-09-13 16:30:00 UTC",
              "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",
              "home_team": "Getafe",
              "away_team": "Deportivo",
              "home_score_current": 1.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": "Getafe",
              "opponent": "Deportivo",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 82,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0116,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 17,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 4,
                "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"
            },
            {
              "match_id": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 65,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0469,
                "expected_assists": 0.0589,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 22,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "clearances": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 85,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0557,
                "expected_assists": 0.0147,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 29,
                "accurate_pass": 25,
                "tackles": 4,
                "tackles_won": 4,
                "clearances": 1,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 81,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0077,
                "total_shots": 0,
                "total_pass": 24,
                "accurate_pass": 21,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 2,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 4003,
            "combined_rank_score": 1985.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 445.0,
            "sofascore_rating": 6.9,
            "sofascore_appearances": 3.0,
            "fifa_rank": 3526.0,
            "fifa_overall": 73.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 15,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6779,
            "source_file": "data/player_rankings.csv",
            "player_name": "Andrés García",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Tai Baribo",
                  "ranking": 3998
                },
                {
                  "player_name": "Claudio Echeverri",
                  "ranking": 3999
                },
                {
                  "player_name": "Turrientes",
                  "ranking": 4000
                },
                {
                  "player_name": "Agirrezabala",
                  "ranking": 4001
                },
                {
                  "player_name": "Enzo Bardeli",
                  "ranking": 4002
                }
              ],
              "lower": [
                {
                  "player_name": "Antoni Milambo",
                  "ranking": 4004
                },
                {
                  "player_name": "Loum Tchaouna",
                  "ranking": 4005
                },
                {
                  "player_name": "Marco Grüll",
                  "ranking": 4006
                },
                {
                  "player_name": "Soungoutou Magassa",
                  "ranking": 4007
                },
                {
                  "player_name": "Mikel Amondarain",
                  "ranking": 4008
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.65,
          "history_matches": 6,
          "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": 6,
            "data_confidence": 0.65,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9942,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 228.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.18,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.1667
            },
            "rationale": "XGBoost regressor (D_service) evaluated 6 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.17, 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": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.33,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.03,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 69.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 82.0,
                    "is_starting": false,
                    "weight": 0.174,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 85.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 6.3
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 1.6903,
                  "defensive_actions": 2.2879,
                  "wonTackle": 1.2135,
                  "totalTackle_p90": 1.9505,
                  "totalClearance_p90": 1.9991,
                  "aerialWon": 0.0
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6005179286003113,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.1353
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.1076
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0202
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0182
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0167
                        }
                      ],
                      "others": -0.0453,
                      "total": 0.6005,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.162286
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.151011
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.030169
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.027105
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.02552
                        }
                      ],
                      "others_margin": -0.072578
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.4367133378982544,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.1493
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0866
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0393
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.03
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0134
                        }
                      ],
                      "others": 0.0386,
                      "total": 1.4367,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.106315
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.060257
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.028623
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.021915
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.009612
                        }
                      ],
                      "others_margin": 0.02723
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8562238812446594,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0349
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0323
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0263
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.012
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0087
                        }
                      ],
                      "others": 0.005,
                      "total": 0.8562,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.041362
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.03821
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.03122
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.014099
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.010318
                        }
                      ],
                      "others_margin": 0.005797
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.296344041824341,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.7798
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.2435
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0868
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0696
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": -0.028
                        }
                      ],
                      "others": -0.0228,
                      "total": 2.2963,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.2616
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.098024
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.037404
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.030097
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": -0.012003
                        }
                      ],
                      "others_margin": -0.009871
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.48029935359954834,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.6159
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0693
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0255
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0233
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0193
                        }
                      ],
                      "others": -0.036,
                      "total": 0.4803,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.663799
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.112131
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.044581
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": -0.042535
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.036659
                        }
                      ],
                      "others_margin": -0.072358
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4403,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0474
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0329
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0302
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0167
                        },
                        {
                          "name": "tackle_success_rate",
                          "contribution": 0.0143
                        }
                      ],
                      "others": -0.0176,
                      "total": 0.4403,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "press_vulnerability",
                          "margin": 0.047399
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.032868
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.030241
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.016733
                        },
                        {
                          "name": "tackle_success_rate",
                          "margin": 0.014315
                        }
                      ],
                      "others_margin": -0.017658
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.677890777587891,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0211
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0149
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": -0.0127
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0108
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0106
                        }
                      ],
                      "others": -0.031,
                      "total": 6.6779,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "duel_win_rate",
                          "margin": -0.021094
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": -0.014905
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": -0.012655
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.010822
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.010608
                        }
                      ],
                      "others_margin": -0.03103
                    }
                  }
                ],
                "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.9942, quality 0.481)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0298,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 6500000,
                "quality_factor": 0.4805,
                "boost_factor": 0.9942
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0493)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0298,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 84.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -0.39
              },
              "params": {
                "blend_weight": 0.0493,
                "history_matches": 6,
                "prior_reliability": 0.1667,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.8512,
                  "after": 0.9275
                },
                {
                  "stat": "totalShots",
                  "before": 0.4377,
                  "after": 0.4743
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.597,
                  "after": 0.5676
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "totalCross",
                  "before": 3.6486,
                  "after": 3.6659
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0298,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 84.4,
                "pointsPerMatch": 1.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": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0298,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 84.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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": "Anthony Gordon",
                  "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0246,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 84.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_assists",
                  "before": 0.0298,
                  "after": 0.0246
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 15 by projected rating, fifa_overall 73.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0246,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 84.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "match_squad_rank": 15,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4003,
                "fifa_rank": 3526.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 73.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0246,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 84.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0016,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 11,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.6779,
                "minutes": 79,
                "total_pass": 24,
                "accurate_pass": 21,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 12,
                "accurate_own_half_passes": 11,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 10,
                "crosses_total": 4,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 12.258,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 4,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0246,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 13,
                "total_progression": 44,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 84.4,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.8,
                "clearances_in_zone": 0.7,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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.0243,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 73.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0243,
                "provider_weight": 0.0197,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0485,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 14
              }
            }
          ]
        },
        "Abdel Abqar": {
          "player_id": 1101232,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 5,
          "height": 188,
          "market_value": 3300000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.5671,
            "minutes": 46,
            "total_pass": 16,
            "accurate_pass": 31,
            "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": 6,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 23,
            "possession_lost": 4.9117,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "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,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 33.7,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "tackles_in_zone": 1.0,
            "tackles_won_in_zone": 0.8,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.629,
            "opponent_faced": "Anthony Gordon",
            "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,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "clearances": 1
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.002,
                "total_shots": 0,
                "total_pass": 31,
                "accurate_pass": 22,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 7,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 1666,
            "combined_rank_score": 767.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 675.0,
            "sofascore_rating": 6.7227,
            "sofascore_appearances": 23.0,
            "fifa_rank": 860.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 18,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.5671,
            "source_file": "data/player_rankings.csv",
            "player_name": "Abdel Abqar",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Giacomo Raspadori",
                  "ranking": 1661
                },
                {
                  "player_name": "Wataru Endo",
                  "ranking": 1662
                },
                {
                  "player_name": "Barış Alper Yılmaz",
                  "ranking": 1663
                },
                {
                  "player_name": "Carlos Soler",
                  "ranking": 1664
                },
                {
                  "player_name": "Rodrigo Bentancur",
                  "ranking": 1665
                }
              ],
              "lower": [
                {
                  "player_name": "Sofyan Amrabat",
                  "ranking": 1667
                },
                {
                  "player_name": "Gang-han Lee",
                  "ranking": 1668
                },
                {
                  "player_name": "Choi Chi-ung",
                  "ranking": 1669
                },
                {
                  "player_name": "Robin Koch",
                  "ranking": 1670
                },
                {
                  "player_name": "Ryoji Fujimori",
                  "ranking": 1671
                }
              ]
            }
          },
          "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": 0.9823,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 1.0,
              "minutes": 91.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 (La Liga, Getafe, 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": 1,
                "total_shots": 0,
                "rating": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 32,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 5.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": null
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.4595,
                    "rating": 6.2
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 3.7568,
                  "defensive_actions": 1.3784,
                  "wonTackle": 0.4595,
                  "totalTackle_p90": 0.9189,
                  "totalClearance_p90": 51.8649,
                  "aerialWon": 0.4595
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6642857789993286,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": -0.116
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": -0.0694
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0382
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0253
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0215
                        }
                      ],
                      "others": -0.0957,
                      "total": 0.6643,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": -0.137449
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": -0.092237
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.05186
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.032899
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.027934
                        }
                      ],
                      "others_margin": -0.134551
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.0103955268859863,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0852
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0543
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.049
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0314
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0298
                        }
                      ],
                      "others": -0.0712,
                      "total": 1.0104,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.066115
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.044558
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.041963
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.027865
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.027144
                        }
                      ],
                      "others_margin": -0.068178
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6188564896583557,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.133
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0342
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0272
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0206
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0174
                        }
                      ],
                      "others": -0.0427,
                      "total": 0.6189,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.175644
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.048228
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.038108
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.029922
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.025899
                        }
                      ],
                      "others_margin": -0.066925
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.6123971939086914,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.6437
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.5937
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.536
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1551
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1489
                        }
                      ],
                      "others": -0.1726,
                      "total": 3.6124,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.173963
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.137388
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.123178
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.038662
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.038596
                        }
                      ],
                      "others_margin": -0.046666
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.8414214253425598,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.4918
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.1404
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.1196
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0838
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0808
                        }
                      ],
                      "others": -0.1934,
                      "total": 0.8414,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.490034
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.165929
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.122466
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.084247
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.081287
                        }
                      ],
                      "others_margin": -0.206782
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.2861,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0494
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0477
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0454
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0242
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0212
                        }
                      ],
                      "others": -0.002,
                      "total": 0.2861,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": -0.049433
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.047683
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.045421
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.024239
                        },
                        {
                          "name": "touches",
                          "margin": -0.021157
                        }
                      ],
                      "others_margin": -0.002023
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.567139148712158,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0786
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.053
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0348
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0158
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0153
                        }
                      ],
                      "others": -0.0628,
                      "total": 6.5671,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.078626
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.052957
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.034826
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.015795
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.015267
                        }
                      ],
                      "others_margin": -0.062831
                    }
                  }
                ],
                "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.9823, quality 0.441)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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
              },
              "params": {
                "market_value_eur": 3300000,
                "quality_factor": 0.4412,
                "boost_factor": 0.9823
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0310)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 33.7,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": -2.97
              },
              "params": {
                "blend_weight": 0.031,
                "history_matches": 2,
                "prior_reliability": 0.0667,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.031
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.031
                },
                {
                  "stat": "wonTackle",
                  "before": 0.6079,
                  "after": 0.62
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.6526,
                  "after": 0.6634
                },
                {
                  "stat": "totalShots",
                  "before": 0.281,
                  "after": 0.2723
                }
              ]
            },
            {
              "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": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 33.7,
                "pointsPerMatch": 1.5,
                "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": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 33.7,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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": "Anthony Gordon",
                  "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 33.7,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 18 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 33.7,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 18,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1666,
                "fifa_rank": 860.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 33.7,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0016,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 12,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.5671,
                "minutes": 46,
                "total_pass": 16,
                "accurate_pass": 31,
                "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": 6,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 4.9117,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 33.7,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "tackles_in_zone": 1.0,
                "tackles_won_in_zone": 0.8,
                "interceptions_in_zone": 0.7,
                "clearances_in_zone": 0.6,
                "aerial_duels_won": 0.7,
                "defensive_success_rate": 0.629,
                "opponent_faced": "Anthony Gordon",
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.001,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0025,
                "creation_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 14
              }
            }
          ]
        },
        "Zaid Romero": {
          "player_id": 1108450,
          "position": "D",
          "position_depth": "D",
          "is_starter": true,
          "shirt_number": 24,
          "height": 192,
          "market_value": 2400000,
          "stats": {
            "interceptions": 1,
            "tackles": 1,
            "tackles_won": 1,
            "clearances": 4,
            "aerial_won": 1,
            "total_shots": 0,
            "rating": 6.7075,
            "minutes": 86,
            "total_pass": 38,
            "accurate_pass": 32,
            "duels_won": 5,
            "total_long_balls": 7,
            "accurate_long_balls": 3,
            "total_own_half_passes": 18,
            "accurate_own_half_passes": 17,
            "total_opp_half_passes": 20,
            "accurate_opp_half_passes": 15,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 57,
            "possession_lost": 9.9791,
            "dispossessed": 0.0,
            "duels_lost": 0,
            "aerial_lost": 0,
            "total_contest": 2,
            "won_contest": 0,
            "ball_recovery": 6,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "goal_rate": 0.0,
            "goals": 0,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0162,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 14,
            "total_progression": 65,
            "progressive_carries": 1,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 100.0,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "opponent_faced": "Anthony Gordon",
            "matchup_zone": "Shape fallback",
            "antagonist_source": "formation_fallback",
            "projected_goals": 0,
            "goal_probability": 0.0,
            "projected_assists": 0,
            "assist_probability": 0.0161,
            "finishing_factor": 1.0,
            "creation_factor": 0.8,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0132,
                "total_shots": 0,
                "total_pass": 47,
                "accurate_pass": 46,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "clearances": 5,
                "duels_won": 5,
                "ball_recovery": 8
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0033,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 17,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 6,
                "duels_won": 4,
                "ball_recovery": 8
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 67,
                "rating": 5.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0428,
                "expected_assists": 0.0045,
                "total_shots": 1,
                "total_pass": 31,
                "accurate_pass": 24,
                "interceptions": 3,
                "clearances": 4,
                "duels_won": 2,
                "ball_recovery": 5
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0157,
                "total_shots": 0,
                "total_pass": 56,
                "accurate_pass": 47,
                "tackles": 3,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 5,
                "aerial_won": 5,
                "duels_won": 10,
                "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"
            },
            {
              "match_id": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0035,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 26,
                "interceptions": 2,
                "clearances": 6,
                "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0577,
                "total_shots": 0,
                "total_pass": 37,
                "accurate_pass": 35,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 6,
                "aerial_won": 2,
                "duels_won": 8,
                "ball_recovery": 7
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2838,
            "combined_rank_score": 960.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 348.0,
            "sofascore_rating": 6.9867,
            "sofascore_appearances": 15.0,
            "fifa_rank": 1572.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 11,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7075,
            "source_file": "data/player_rankings.csv",
            "player_name": "Zaid Romero",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Shamsiddin Tursunmakhamadov",
                  "ranking": 2833
                },
                {
                  "player_name": "Dani Meso",
                  "ranking": 2834
                },
                {
                  "player_name": "Reggie Walsh",
                  "ranking": 2835
                },
                {
                  "player_name": "Kaden Rodney",
                  "ranking": 2836
                },
                {
                  "player_name": "Shumaira Mheuka",
                  "ranking": 2837
                }
              ],
              "lower": [
                {
                  "player_name": "Diego Carrasco",
                  "ranking": 2839
                },
                {
                  "player_name": "James Scanlon",
                  "ranking": 2840
                },
                {
                  "player_name": "Paulinho",
                  "ranking": 2841
                },
                {
                  "player_name": "Marc Casadó",
                  "ranking": 2842
                },
                {
                  "player_name": "Maximilian Göppel",
                  "ranking": 2843
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.655,
          "history_matches": 6,
          "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": 6,
            "data_confidence": 0.655,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 270.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (D_service) evaluated 6 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.20, 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.7075,
                "minutes": 86,
                "total_pass": 39,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 4,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 21,
                "accurate_opp_half_passes": 16,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 58,
                "possession_lost": 10.17,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 15,
                "total_progression": 66,
                "progressive_carries": 2,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 7.7
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 67.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 5.8
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 6.8
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 6.4
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalClearance": 5.2633,
                  "defensive_actions": 3.5656,
                  "wonTackle": 0.8482,
                  "totalTackle_p90": 1.4055,
                  "totalClearance_p90": 5.5022,
                  "aerialWon": 1.0789
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 1.3705484867095947,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "interceptionWon",
                          "contribution": 0.1303
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.1343
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0323
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0276
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.0271
                        }
                      ],
                      "others": 0.1155,
                      "total": 1.3705,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "interceptionWon",
                          "margin": 0.134772
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.122155
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.027293
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.022706
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.021854
                        }
                      ],
                      "others_margin": 0.088064
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.3956027030944824,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": 0.1549
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0635
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0259
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0136
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0135
                        }
                      ],
                      "others": -0.0013,
                      "total": 1.3956,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": 0.110066
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.04369
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.018338
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.009725
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.009638
                        }
                      ],
                      "others_margin": -0.000964
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.8580756783485413,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1192
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0798
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0399
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": 0.0172
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0135
                        }
                      ],
                      "others": 0.0283,
                      "total": 0.8581,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.155964
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.106972
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.049462
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": 0.02062
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.016147
                        }
                      ],
                      "others_margin": 0.033606
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 3.862689733505249,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.47
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.2251
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.2037
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0637
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.061
                        }
                      ],
                      "others": 0.0238,
                      "total": 3.8627,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": 0.129933
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.060132
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.054573
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.016463
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.015778
                        }
                      ],
                      "others_margin": 0.006182
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 1.2361557483673096,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": 0.2046
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.1904
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0757
                        },
                        {
                          "name": "aerial_dominance",
                          "contribution": -0.0736
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": -0.0475
                        }
                      ],
                      "others": -0.0022,
                      "total": 1.2362,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": 0.149409
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.138287
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.057262
                        },
                        {
                          "name": "aerial_dominance",
                          "margin": -0.055638
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": -0.037658
                        }
                      ],
                      "others_margin": -0.0018
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.4484159052371979,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "aerialLost",
                          "contribution": -0.0228
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.02
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.013
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0126
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": 0.0105
                        }
                      ],
                      "others": 0.0051,
                      "total": 0.4484,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "aerialLost",
                          "margin": -0.022835
                        },
                        {
                          "name": "duelLost",
                          "margin": -0.020038
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.013047
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.012573
                        },
                        {
                          "name": "defensive_actions",
                          "margin": 0.010481
                        }
                      ],
                      "others_margin": 0.005237
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.707544803619385,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0304
                        },
                        {
                          "name": "error_severity",
                          "contribution": -0.0185
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0127
                        },
                        {
                          "name": "touches",
                          "contribution": -0.012
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0117
                        }
                      ],
                      "others": -0.0492,
                      "total": 6.7075,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.030368
                        },
                        {
                          "name": "error_severity",
                          "margin": -0.01847
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.01271
                        },
                        {
                          "name": "touches",
                          "margin": -0.012037
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.01171
                        }
                      ],
                      "others_margin": -0.049104
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0196,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 2400000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0591)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0196,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0591,
                "history_matches": 6,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0788
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0591
                },
                {
                  "stat": "totalShots",
                  "before": 0.44,
                  "after": 0.414
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "wonTackle",
                  "before": 0.842,
                  "after": 0.8513
                }
              ]
            },
            {
              "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": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0196,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.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": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0196,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Anthony Gordon",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Anthony Gordon",
                  "matchup_zone": "Shape fallback"
                }
              }
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0162,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Anthony Gordon",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 11 by projected rating, fifa_overall 77.0; not used by the projection)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0162,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Anthony Gordon",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 11,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 2838,
                "fifa_rank": 1572.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0162,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Anthony Gordon",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0016,
                "finishing_factor": 1.0,
                "appearance_weight": 1.0,
                "weight_rank": 13,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 4,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.7075,
                "minutes": 86,
                "total_pass": 38,
                "accurate_pass": 32,
                "duels_won": 5,
                "total_long_balls": 7,
                "accurate_long_balls": 3,
                "total_own_half_passes": 18,
                "accurate_own_half_passes": 17,
                "total_opp_half_passes": 20,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 57,
                "possession_lost": 9.9791,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 2,
                "won_contest": 0,
                "ball_recovery": 6,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0162,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 65,
                "progressive_carries": 1,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 100.0,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "opponent_faced": "Anthony Gordon",
                "matchup_zone": "Shape fallback",
                "antagonist_source": "formation_fallback",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0161,
                "finishing_factor": 1.0,
                "creation_factor": 0.8,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0161,
                "provider_weight": 0.013,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0319,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 9,
                "eligible_players": 14
              }
            }
          ]
        },
        "Mario Martín": {
          "player_id": 1154549,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 6,
          "height": 177,
          "market_value": 10700000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.0331,
            "assist_rate": 0.0537,
            "assists": 0,
            "expected_goals": 0.0648,
            "goal_rate": 0.169,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.7528,
            "minutes": 83,
            "total_pass": 23,
            "accurate_pass": 18,
            "duels_won": 5,
            "total_long_balls": 3,
            "accurate_long_balls": 0,
            "total_own_half_passes": 9,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 14,
            "accurate_opp_half_passes": 11,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 38,
            "possession_lost": 9.5873,
            "dispossessed": 0.0,
            "duels_lost": 8,
            "aerial_won": 1,
            "aerial_lost": 0,
            "interceptions": 0,
            "tackles_won": 0,
            "tackles": 2,
            "clearances": 0,
            "total_contest": 0,
            "won_contest": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 3,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 8,
            "total_progression": 27,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 1.4286,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 24.1,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.7722,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.5,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.295,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Fermín López",
            "opponent_faced": "Fermín López",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0627,
            "projected_assists": 0,
            "assist_probability": 0.0326,
            "finishing_factor": 1.25,
            "creation_factor": 1.1509,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 87,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0527,
                "expected_assists": 0.0117,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 11,
                "accurate_pass": 8,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 1
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1854,
                "expected_assists": 0.0113,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 34,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 6,
                "ball_recovery": 5
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.069,
                "expected_assists": 0.0083,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 24,
                "accurate_pass": 19,
                "tackles": 2,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 66,
                "rating": 6.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0523,
                "total_shots": 0,
                "total_pass": 22,
                "accurate_pass": 20,
                "tackles": 1,
                "duels_won": 5,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3754,
            "combined_rank_score": 1748.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 578.0,
            "sofascore_rating": 6.8,
            "sofascore_appearances": 1.0,
            "fifa_rank": 2918.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 8,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7528,
            "source_file": "data/player_rankings.csv",
            "player_name": "Mario Martín",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Iván Balliu",
                  "ranking": 3749
                },
                {
                  "player_name": "Rob Schoofs",
                  "ranking": 3750
                },
                {
                  "player_name": "Ezequiel Piovi",
                  "ranking": 3751
                },
                {
                  "player_name": "Patrick Pflücke",
                  "ranking": 3752
                },
                {
                  "player_name": "Junya Ito",
                  "ranking": 3753
                }
              ],
              "lower": [
                {
                  "player_name": "Doğucan Haspolat",
                  "ranking": 3755
                },
                {
                  "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
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.507,
          "history_matches": 4,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 4,
            "data_confidence": 0.507,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0092,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 1.0,
              "starts": 1.0,
              "minutes": 65.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.0467
            },
            "rationale": "XGBoost regressor (M_service) evaluated 4 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.05, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0397,
                "assist_rate": 0.0541,
                "assists": 0,
                "expected_goals": 0.1524,
                "goal_rate": 0.2205,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 2,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 6,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 2,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 26,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 87.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 66.0,
                    "is_starting": true,
                    "weight": 0.1927,
                    "rating": 6.8
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 1.0,
                  "totalShots": 1.6146,
                  "expectedAssists": 0.0186,
                  "creative_index": 0.1179,
                  "creative_efficiency": 0.003,
                  "shotValueNormalized": -0.1563,
                  "dribbleValueNormalized": 0.0966
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6778981685638428,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.1279
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0877
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0537
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0372
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0294
                        }
                      ],
                      "others": -0.0203,
                      "total": 0.6779,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.148499
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.116363
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.072842
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.049805
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.04128
                        }
                      ],
                      "others_margin": -0.029506
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.03973861411213875,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0318
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0028
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0026
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0025
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0021
                        }
                      ],
                      "others": -0.0057,
                      "total": 0.0397,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.454013
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.052154
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.051143
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.05079
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.044945
                        }
                      ],
                      "others_margin": -0.133192
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.05412914231419563,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0125
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0081
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0043
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0017
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.001
                        }
                      ],
                      "others": -0.0034,
                      "total": 0.0541,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": -0.158432
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.118156
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.068441
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.02895
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.017239
                        }
                      ],
                      "others_margin": -0.061724
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.15235520899295807,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0129
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0114
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0078
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0069
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0042
                        }
                      ],
                      "others": -0.0026,
                      "total": 0.1524,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.073405
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.069478
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.048256
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.042321
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.026988
                        }
                      ],
                      "others_margin": -0.017296
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.22054925560951233,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0625
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0261
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": 0.0119
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0126
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0117
                        }
                      ],
                      "others": 0.0234,
                      "total": 0.2205,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.352424
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.132493
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": 0.062554
                        },
                        {
                          "name": "intensity_index",
                          "margin": 0.062053
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.057784
                        }
                      ],
                      "others_margin": 0.112777
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.4213004410266876,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0526
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0167
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0133
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0106
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0099
                        }
                      ],
                      "others": 0.0218,
                      "total": 0.4213,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.144896
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.0419
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.032195
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.025681
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.024461
                        }
                      ],
                      "others_margin": 0.053138
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.4986004410266875,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.345
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0486
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0395
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0331
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0241
                        }
                      ],
                      "others": 0.0492,
                      "total": 1.4986,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.345042
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.048578
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.039549
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.033112
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.024056
                        }
                      ],
                      "others_margin": 0.049266
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.752752304077148,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0424
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0283
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.027
                        },
                        {
                          "name": "duelLost",
                          "contribution": -0.0256
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0188
                        }
                      ],
                      "others": -0.0591,
                      "total": 6.7528,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.042429
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.028328
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.027032
                        },
                        {
                          "name": "duelLost",
                          "margin": -0.025639
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.018833
                        }
                      ],
                      "others_margin": -0.059063
                    }
                  }
                ],
                "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.0092, quality 0.531)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0401,
                "assist_rate": 0.0546,
                "assists": 0,
                "expected_goals": 0.1538,
                "goal_rate": 0.2226,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 10700000,
                "quality_factor": 0.5306,
                "boost_factor": 1.0092
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0169)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0401,
                "assist_rate": 0.0537,
                "assists": 0,
                "expected_goals": 0.1538,
                "goal_rate": 0.2188,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 1.4286,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 24.1,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0169,
                "history_matches": 4,
                "prior_reliability": 0.0467,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 2.523,
                  "after": 2.5768
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0482
                },
                {
                  "stat": "totalShots",
                  "before": 1.5124,
                  "after": 1.4869
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0241
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4252,
                  "after": 0.418
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0401,
                "assist_rate": 0.0537,
                "assists": 0,
                "expected_goals": 0.1538,
                "goal_rate": 0.2188,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 1.4286,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 24.1,
                "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.0401,
                "assist_rate": 0.0537,
                "assists": 0,
                "expected_goals": 0.1188,
                "goal_rate": 0.169,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 1.4286,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 24.1,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7722,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.295,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Fermín López",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.295,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.7722,
                  "skill_edge": -0.159,
                  "height_edge": 0.004,
                  "attacker_skill": 0.5444,
                  "defender_skill": 0.8977,
                  "xg_override": 0.1188
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 1.5052,
                  "after": 1.1623
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0872,
                  "after": 0.8395
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.418,
                  "after": 0.3228
                },
                {
                  "stat": "goals",
                  "before": 0.2188,
                  "after": 0.169
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1538,
                  "after": 0.1188
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0331,
                "assist_rate": 0.0537,
                "assists": 0,
                "expected_goals": 0.0648,
                "goal_rate": 0.169,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 1.4286,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 24.1,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7722,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.295,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.1509
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.1188,
                  "after": 0.0648
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0401,
                  "after": 0.0331
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 8 by projected rating, fifa_overall 74.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0331,
                "assist_rate": 0.0537,
                "assists": 0,
                "expected_goals": 0.0648,
                "goal_rate": 0.169,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 1.4286,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 24.1,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7722,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.295,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.1509,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 8,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3754,
                "fifa_rank": 2918.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0331,
                "assist_rate": 0.0537,
                "assists": 0,
                "expected_goals": 0.0648,
                "goal_rate": 0.169,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 1.4286,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 24.1,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7722,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.295,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0627,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.25,
                "creation_factor": 1.1509,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0627,
                "scorer_weight": 0.081,
                "squad_weight_total": 0.6066,
                "weight_share": 0.1335,
                "finishing_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0331,
                "assist_rate": 0.0537,
                "assists": 0,
                "expected_goals": 0.0648,
                "goal_rate": 0.169,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7528,
                "minutes": 83,
                "total_pass": 23,
                "accurate_pass": 18,
                "duels_won": 5,
                "total_long_balls": 3,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 14,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 38,
                "possession_lost": 9.5873,
                "dispossessed": 0.0,
                "duels_lost": 8,
                "aerial_won": 1,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 2,
                "clearances": 0,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 8,
                "total_progression": 27,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 1.4286,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 24.1,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7722,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.295,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0627,
                "projected_assists": 0,
                "assist_probability": 0.0326,
                "finishing_factor": 1.25,
                "creation_factor": 1.1509,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0326,
                "provider_weight": 0.0381,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0939,
                "creation_factor": 1.1509,
                "appearance_weight": 1.0,
                "weight_rank": 5,
                "eligible_players": 14
              }
            }
          ]
        },
        "Orel Mangala": {
          "player_id": 793988,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 23,
          "height": 178,
          "market_value": 8600000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.029,
            "assist_rate": 0.0489,
            "assists": 0,
            "expected_goals": 0.0445,
            "goal_rate": 0.0445,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.6955,
            "minutes": 79,
            "total_pass": 26,
            "accurate_pass": 23,
            "duels_won": 4,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 9,
            "accurate_own_half_passes": 8,
            "total_opp_half_passes": 17,
            "accurate_opp_half_passes": 15,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 36,
            "possession_lost": 5.1491,
            "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": 0,
            "fouls_drawn": 0,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 11,
            "total_progression": 39,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.3333,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 0.0,
            "shotConversion": 0.0,
            "minutesPct": 99.6,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.7601,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.5,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.287,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
            "numerical_situation": "1v1",
            "opponent_defenders": "Fermín López",
            "opponent_faced": "Fermín López",
            "antagonist_source": "attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0435,
            "projected_assists": 0,
            "assist_probability": 0.0286,
            "finishing_factor": 0.8,
            "creation_factor": 1.1622,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 25,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0052,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 10,
                "tackles": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 81,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0173,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 15,
                "interceptions": 4,
                "duels_won": 1,
                "ball_recovery": 5
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0125,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 27,
                "key_pass": 1,
                "interceptions": 1,
                "clearances": 2,
                "ball_recovery": 2
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 89,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0044,
                "total_shots": 0,
                "total_pass": 15,
                "accurate_pass": 12,
                "interceptions": 4,
                "clearances": 3,
                "aerial_won": 1,
                "duels_won": 1
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0625,
                "expected_assists": 0.0318,
                "total_shots": 1,
                "total_pass": 47,
                "accurate_pass": 45,
                "key_pass": 1,
                "duels_won": 4,
                "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 89,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0435,
                "expected_assists": 0.018,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 26,
                "accurate_pass": 22,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 3,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0598,
                "expected_assists": 0.0119,
                "total_shots": 1,
                "total_pass": 37,
                "accurate_pass": 31,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3486,
            "combined_rank_score": 1474.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 3.0,
            "fifa_rank": 2250.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 13,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6955,
            "source_file": "data/player_rankings.csv",
            "player_name": "Orel Mangala",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jonathan Clauss",
                  "ranking": 3481
                },
                {
                  "player_name": "Philipp Köhn",
                  "ranking": 3482
                },
                {
                  "player_name": "Leandro González Pírez",
                  "ranking": 3483
                },
                {
                  "player_name": "Mahdi Camara",
                  "ranking": 3484
                },
                {
                  "player_name": "Saud Abdulhamid",
                  "ranking": 3485
                }
              ],
              "lower": [
                {
                  "player_name": "Lassine Sinayoko",
                  "ranking": 3487
                },
                {
                  "player_name": "Tyrhys Dolan",
                  "ranking": 3488
                },
                {
                  "player_name": "Yann Gboho",
                  "ranking": 3489
                },
                {
                  "player_name": "Ansu Fati",
                  "ranking": 3490
                },
                {
                  "player_name": "Marcus Edwards",
                  "ranking": 3491
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.718,
          "history_matches": 7,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 7,
            "data_confidence": 0.718,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0018,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 269.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 1.0,
              "shots_on_target_pct": 0.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (M_service) evaluated 7 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0351,
                "assist_rate": 0.0516,
                "assists": 0,
                "expected_goals": 0.1072,
                "goal_rate": 0.0618,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.14,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 25.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.6
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.2965,
                  "expectedAssists": 0.0134,
                  "creative_index": 0.1179,
                  "creative_efficiency": 0.0057,
                  "shotValueNormalized": 0.002,
                  "dribbleValueNormalized": 0.1024
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5519863963127136,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.1319
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.1025
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0393
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0318
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.028
                        }
                      ],
                      "others": -0.0412,
                      "total": 0.552,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.153589
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.138078
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.058449
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.049922
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.046181
                        }
                      ],
                      "others_margin": -0.071865
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.0350688099861145,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0355
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.003
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0024
                        },
                        {
                          "name": "totalCross",
                          "contribution": -0.0016
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0014
                        }
                      ],
                      "others": -0.0082,
                      "total": 0.0351,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.521631
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.059988
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.050841
                        },
                        {
                          "name": "totalCross",
                          "margin": -0.03595
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.032558
                        }
                      ],
                      "others_margin": -0.210283
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.05164056271314621,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0131
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0079
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0037
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0022
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0017
                        }
                      ],
                      "others": -0.0049,
                      "total": 0.0516,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": -0.167417
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.116554
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.058677
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.036833
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.028821
                        }
                      ],
                      "others_margin": -0.091704
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10718894749879837,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0322
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0103
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0072
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0052
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0045
                        }
                      ],
                      "others": -0.016,
                      "total": 0.1072,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.193931
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.070669
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.053037
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.040202
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.035534
                        }
                      ],
                      "others_margin": -0.139482
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.0618368498980999,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0422
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0212
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0068
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.003
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0026
                        }
                      ],
                      "others": -0.0103,
                      "total": 0.0618,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.33595
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.224403
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.083965
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.039491
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.03526
                        }
                      ],
                      "others_margin": -0.15302
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.17116409540176392,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1214
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0174
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0106
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.006
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0051
                        }
                      ],
                      "others": -0.0159,
                      "total": 0.1712,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.445892
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.084172
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.054967
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.032543
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.027558
                        }
                      ],
                      "others_margin": -0.088721
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.6146640954017639,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2704
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0389
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0387
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0374
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0349
                        }
                      ],
                      "others": -0.073,
                      "total": 0.6146,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.270368
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.038884
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.0387
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.037425
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.03493
                        }
                      ],
                      "others_margin": -0.073001
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.695494651794434,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0452
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0324
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.017
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0089
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0087
                        }
                      ],
                      "others": -0.0521,
                      "total": 6.6955,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.045192
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.032446
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.017024
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.008879
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.008682
                        }
                      ],
                      "others_margin": -0.052035
                    }
                  }
                ],
                "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.0018, quality 0.506)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0351,
                "assist_rate": 0.0517,
                "assists": 0,
                "expected_goals": 0.1074,
                "goal_rate": 0.0619,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 8600000,
                "quality_factor": 0.5059,
                "boost_factor": 1.0018
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0542)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0351,
                "assist_rate": 0.0489,
                "assists": 0,
                "expected_goals": 0.1074,
                "goal_rate": 0.0585,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0542,
                "history_matches": 7,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.1264
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0903
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0903
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "totalShots",
                  "before": 0.6158,
                  "after": 0.6366
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1715,
                  "after": 0.1622
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0351,
                "assist_rate": 0.0489,
                "assists": 0,
                "expected_goals": 0.1074,
                "goal_rate": 0.0585,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.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.0351,
                "assist_rate": 0.0489,
                "assists": 0,
                "expected_goals": 0.0816,
                "goal_rate": 0.0445,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7601,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.287,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Fermín López",
                  "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                  "duel_win_rate": 0.287,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.7601,
                  "skill_edge": -0.1712,
                  "height_edge": 0.008,
                  "attacker_skill": 0.5172,
                  "defender_skill": 0.8977,
                  "xg_override": 0.0816
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 0.6366,
                  "after": 0.4839
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.4443,
                  "after": 0.3377
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.1622,
                  "after": 0.1233
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1074,
                  "after": 0.0816
                },
                {
                  "stat": "goals",
                  "before": 0.0585,
                  "after": 0.0445
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.029,
                "assist_rate": 0.0489,
                "assists": 0,
                "expected_goals": 0.0445,
                "goal_rate": 0.0445,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7601,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.287,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.1622
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0816,
                  "after": 0.0445
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0351,
                  "after": 0.029
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 13 by projected rating, fifa_overall 75.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.029,
                "assist_rate": 0.0489,
                "assists": 0,
                "expected_goals": 0.0445,
                "goal_rate": 0.0445,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7601,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.287,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.1622,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 13,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3486,
                "fifa_rank": 2250.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.029,
                "assist_rate": 0.0489,
                "assists": 0,
                "expected_goals": 0.0445,
                "goal_rate": 0.0445,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7601,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.287,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0435,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 1.1622,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0435,
                "scorer_weight": 0.0356,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0587,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 7,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.029,
                "assist_rate": 0.0489,
                "assists": 0,
                "expected_goals": 0.0445,
                "goal_rate": 0.0445,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6955,
                "minutes": 79,
                "total_pass": 26,
                "accurate_pass": 23,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 9,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 17,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 36,
                "possession_lost": 5.1491,
                "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": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 39,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.3333,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7601,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.287,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
                "numerical_situation": "1v1",
                "opponent_defenders": "Fermín López",
                "opponent_faced": "Fermín López",
                "antagonist_source": "attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0435,
                "projected_assists": 0,
                "assist_probability": 0.0286,
                "finishing_factor": 0.8,
                "creation_factor": 1.1622,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0286,
                "provider_weight": 0.0337,
                "squad_weight_total": 0.4059,
                "weight_share": 0.083,
                "creation_factor": 1.1622,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 14
              }
            }
          ]
        },
        "Ramón Terrats": {
          "player_id": 1088565,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 11,
          "height": 179,
          "market_value": 3200000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.1155,
            "assist_rate": 0.0865,
            "assists": 0,
            "expected_goals": 0.0916,
            "goal_rate": 0.1579,
            "goals": 0,
            "shots_on_target": 1,
            "total_shots": 2,
            "rating": 7.0671,
            "minutes": 89,
            "total_pass": 27,
            "accurate_pass": 21,
            "duels_won": 7,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 8,
            "accurate_own_half_passes": 7,
            "total_opp_half_passes": 19,
            "accurate_opp_half_passes": 14,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 48,
            "possession_lost": 11.1258,
            "dispossessed": 0.0,
            "duels_lost": 4,
            "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": 3,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 14,
            "total_progression": 58,
            "progressive_carries": 2,
            "shots_off_target": 1,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 20.0,
            "shotConversion": 0.0,
            "minutesPct": 99.6,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.7172,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.4,
            "crosses_attempted": 2.2,
            "duel_win_rate": 0.228,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "LWB vs RWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Dani Olmo",
            "opponent_faced": "Dani Olmo",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0875,
            "projected_assists": 0,
            "assist_probability": 0.1091,
            "finishing_factor": 0.9537,
            "creation_factor": 0.8,
            "fifa_overall": 82.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 8.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0426,
                "expected_assists": 0.2153,
                "total_shots": 2,
                "shots_on_target": 2,
                "total_pass": 25,
                "accurate_pass": 23,
                "key_pass": 4,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 10,
                "ball_recovery": 5
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_type": "played",
              "match_id": "16416336.0",
              "match_date": "2026-09-17 17:00:00 UTC",
              "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",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "home_score_current": 1.0,
              "away_score_current": 0.0,
              "team_side": "away",
              "status_code": "100",
              "status_type": "finished",
              "status_description": "Ended",
              "player_status": "starter",
              "is_starting_11": "True",
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {},
              "has_player_stats": false,
              "source": "depth_chart.csv"
            },
            {
              "match_id": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 84,
                "rating": 8.0,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3592,
                "expected_assists": 0.0201,
                "total_shots": 3,
                "shots_on_target": 2,
                "shots_off_target": 1,
                "total_pass": 23,
                "accurate_pass": 16,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 2,
                "aerial_won": 1,
                "duels_won": 5,
                "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 89,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1452,
                "expected_assists": 0.1317,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 19,
                "accurate_pass": 16,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 5
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2856,
                "expected_assists": 0.3853,
                "total_shots": 4,
                "shots_on_target": 1,
                "shots_off_target": 3,
                "total_pass": 36,
                "accurate_pass": 28,
                "key_pass": 1,
                "tackles": 3,
                "tackles_won": 1,
                "interceptions": 1,
                "aerial_won": 3,
                "duels_won": 8,
                "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1121,
                "expected_assists": 0.1731,
                "total_shots": 4,
                "shots_off_target": 4,
                "total_pass": 30,
                "accurate_pass": 23,
                "key_pass": 4,
                "tackles": 1,
                "clearances": 4,
                "aerial_won": 1,
                "duels_won": 7,
                "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0468,
                "expected_assists": 0.1616,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 29,
                "accurate_pass": 23,
                "key_pass": 1,
                "duels_won": 9,
                "ball_recovery": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 467,
            "combined_rank_score": 328.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 278.0,
            "sofascore_rating": 7.0667,
            "sofascore_appearances": 3.0,
            "fifa_rank": 379.0,
            "fifa_overall": 82.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 2,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0671,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ramón Terrats",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Hans Vanaken",
                  "ranking": 462
                },
                {
                  "player_name": "Asier Bonel",
                  "ranking": 463
                },
                {
                  "player_name": "Marcos Navarro",
                  "ranking": 464
                },
                {
                  "player_name": "Jae Won Hwang",
                  "ranking": 465
                },
                {
                  "player_name": "Gjoko Zajkov",
                  "ranking": 466
                }
              ],
              "lower": [
                {
                  "player_name": "Igor Formiga",
                  "ranking": 468
                },
                {
                  "player_name": "Anthony Caceres",
                  "ranking": 469
                },
                {
                  "player_name": "James Garner",
                  "ranking": 470
                },
                {
                  "player_name": "Marcus Rashford",
                  "ranking": 471
                },
                {
                  "player_name": "João Cancelo",
                  "ranking": 472
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.655,
          "history_matches": 6,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 6,
            "data_confidence": 0.655,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.982,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 269.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 3.35,
              "shots_on_target_pct": 20.0,
              "prior_reliability": 0.2
            },
            "rationale": "XGBoost regressor (M_service) evaluated 6 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.20, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1425,
                "assist_rate": 0.0935,
                "assists": 0,
                "expected_goals": 0.2385,
                "goal_rate": 0.2383,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 22,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 15,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 49,
                "possession_lost": 11.33,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 59,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2408,
                    "rating": 8.4
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.2047,
                    "rating": 8.0
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.174,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1479,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.1257,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1069,
                    "rating": 6.9
                  }
                ],
                "feature_row": {
                  "history_matches": 6.0,
                  "is_starting_11": 1.0,
                  "totalShots": 2.7519,
                  "expectedAssists": 0.1749,
                  "creative_index": 0.7933,
                  "creative_efficiency": 0.0927,
                  "shotValueNormalized": -0.1127,
                  "dribbleValueNormalized": 0.2338
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 1.27068030834198,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": 0.1158
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0674
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0664
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": 0.0376
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0337
                        }
                      ],
                      "others": 0.0231,
                      "total": 1.2707,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": 0.117771
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.062616
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.058115
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": 0.03144
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.02738
                        }
                      ],
                      "others_margin": 0.018378
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.14254388213157654,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0252
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0068
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0045
                        },
                        {
                          "name": "creative_index",
                          "contribution": 0.0039
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.004
                        }
                      ],
                      "others": 0.0199,
                      "total": 0.1425,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.253536
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.058371
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.038214
                        },
                        {
                          "name": "creative_index",
                          "margin": 0.033681
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.032842
                        }
                      ],
                      "others_margin": 0.150872
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.09354269504547119,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0079
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0072
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0032
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0032
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0043,
                      "total": 0.0935,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.088856
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.074627
                        },
                        {
                          "name": "touches",
                          "margin": 0.031656
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.030991
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.024373
                        }
                      ],
                      "others_margin": -0.04567
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2384740710258484,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.058
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": -0.0176
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0131
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0105
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0072
                        }
                      ],
                      "others": 0.0057,
                      "total": 0.2385,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.275613
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": -0.075893
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.057167
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.045673
                        },
                        {
                          "name": "intensity_index",
                          "margin": 0.031569
                        }
                      ],
                      "others_margin": 0.024032
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.238338902592659,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.0742
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0269
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0102
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0089
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": -0.0089
                        }
                      ],
                      "others": 0.0329,
                      "total": 0.2383,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.406722
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.128968
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.050918
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.042355
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": -0.042291
                        }
                      ],
                      "others_margin": 0.148368
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.7356734275817871,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2323
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0404
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": 0.0333
                        },
                        {
                          "name": "totalPass_p90",
                          "contribution": 0.0197
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": 0.0201
                        }
                      ],
                      "others": 0.0525,
                      "total": 0.7357,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.523753
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.068481
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": 0.053171
                        },
                        {
                          "name": "totalPass_p90",
                          "margin": 0.03014
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": 0.029791
                        }
                      ],
                      "others_margin": 0.074091
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.8443734275817871,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.655
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0512
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": 0.0492
                        },
                        {
                          "name": "dispossessed",
                          "contribution": -0.0358
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0256
                        }
                      ],
                      "others": 0.061,
                      "total": 1.8443,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.65498
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.051166
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": 0.049177
                        },
                        {
                          "name": "dispossessed",
                          "margin": -0.035791
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.02565
                        }
                      ],
                      "others_margin": 0.061076
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 7.0671234130859375,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0533
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0403
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.031
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0214
                        },
                        {
                          "name": "duelWon",
                          "contribution": 0.0195
                        }
                      ],
                      "others": 0.0418,
                      "total": 7.0671,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": 0.053252
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.040292
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.031005
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.021357
                        },
                        {
                          "name": "duelWon",
                          "margin": 0.019542
                        }
                      ],
                      "others_margin": 0.041919
                    }
                  }
                ],
                "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.9820, quality 0.440)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.14,
                "assist_rate": 0.0919,
                "assists": 0,
                "expected_goals": 0.2342,
                "goal_rate": 0.234,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 3200000,
                "quality_factor": 0.4399,
                "boost_factor": 0.982
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0591)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.14,
                "assist_rate": 0.0865,
                "assists": 0,
                "expected_goals": 0.2342,
                "goal_rate": 0.2202,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 20.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -1.0
              },
              "params": {
                "blend_weight": 0.0591,
                "history_matches": 6,
                "prior_reliability": 0.2,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.2561
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0985
                },
                {
                  "stat": "totalShots",
                  "before": 1.8111,
                  "after": 1.902
                },
                {
                  "stat": "wasFouled",
                  "before": 2.779,
                  "after": 2.8118
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0197
                },
                {
                  "stat": "goals",
                  "before": 0.234,
                  "after": 0.2202
                },
                {
                  "stat": "goalAssist",
                  "before": 0.0919,
                  "after": 0.0865
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.14,
                "assist_rate": 0.0865,
                "assists": 0,
                "expected_goals": 0.2342,
                "goal_rate": 0.2202,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 20.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.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.14,
                "assist_rate": 0.0865,
                "assists": 0,
                "expected_goals": 0.168,
                "goal_rate": 0.1579,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 20.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7172,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.228,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Olmo",
                "opponent_faced": "Dani Olmo",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Dani Olmo",
                  "matchup_zone": "LWB vs RWB",
                  "duel_win_rate": 0.228,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.7172,
                  "skill_edge": -0.1924,
                  "height_edge": 0.0,
                  "attacker_skill": 0.4569,
                  "defender_skill": 0.8844,
                  "xg_override": 0.168
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 1.902,
                  "after": 1.3641
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0887,
                  "after": 0.7808
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.7193,
                  "after": 0.5159
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2342,
                  "after": 0.168
                },
                {
                  "stat": "goals",
                  "before": 0.2202,
                  "after": 0.1579
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1155,
                "assist_rate": 0.0865,
                "assists": 0,
                "expected_goals": 0.0916,
                "goal_rate": 0.1579,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 20.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7172,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.228,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Olmo",
                "opponent_faced": "Dani Olmo",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9537,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.168,
                  "after": 0.0916
                },
                {
                  "stat": "expected_assists",
                  "before": 0.14,
                  "after": 0.1155
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 2 by projected rating, fifa_overall 82.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1155,
                "assist_rate": 0.0865,
                "assists": 0,
                "expected_goals": 0.0916,
                "goal_rate": 0.1579,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 20.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7172,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.228,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Olmo",
                "opponent_faced": "Dani Olmo",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9537,
                "creation_factor": 0.8,
                "fifa_overall": 82.0
              },
              "params": {
                "match_squad_rank": 2,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 467,
                "fifa_rank": 379.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 82.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1155,
                "assist_rate": 0.0865,
                "assists": 0,
                "expected_goals": 0.0916,
                "goal_rate": 0.1579,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 20.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7172,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.228,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Olmo",
                "opponent_faced": "Dani Olmo",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0875,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9537,
                "creation_factor": 0.8,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0875,
                "scorer_weight": 0.0874,
                "squad_weight_total": 0.6066,
                "weight_share": 0.144,
                "finishing_factor": 0.9537,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.1155,
                "assist_rate": 0.0865,
                "assists": 0,
                "expected_goals": 0.0916,
                "goal_rate": 0.1579,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "rating": 7.0671,
                "minutes": 89,
                "total_pass": 27,
                "accurate_pass": 21,
                "duels_won": 7,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 19,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 48,
                "possession_lost": 11.1258,
                "dispossessed": 0.0,
                "duels_lost": 4,
                "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": 3,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 14,
                "total_progression": 58,
                "progressive_carries": 2,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 20.0,
                "shotConversion": 0.0,
                "minutesPct": 99.6,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7172,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.228,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "LWB vs RWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Dani Olmo",
                "opponent_faced": "Dani Olmo",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0875,
                "projected_assists": 0,
                "assist_probability": 0.1091,
                "finishing_factor": 0.9537,
                "creation_factor": 0.8,
                "fifa_overall": 82.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.1091,
                "provider_weight": 0.0924,
                "squad_weight_total": 0.4059,
                "weight_share": 0.2277,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 14
              }
            }
          ]
        },
        "Francho Serrano": {
          "player_id": 1000676,
          "position": "M",
          "position_depth": "M",
          "is_starter": true,
          "shirt_number": 16,
          "height": 177,
          "market_value": 3100000,
          "stats": {
            "key_pass": 1,
            "expected_assists": 0.047,
            "assist_rate": 0.0593,
            "assists": 0,
            "expected_goals": 0.0409,
            "goal_rate": 0.0703,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "rating": 6.794,
            "minutes": 70,
            "total_pass": 24,
            "accurate_pass": 21,
            "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": 17,
            "accurate_opp_half_passes": 14,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 34,
            "possession_lost": 6.4786,
            "dispossessed": 0.0,
            "duels_lost": 3,
            "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,
            "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": 0,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 61.1,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.7189,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.4,
            "crosses_attempted": 2.2,
            "duel_win_rate": 0.229,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "RWB vs LWB",
            "numerical_situation": "1v1",
            "opponent_defenders": "Raphinha",
            "opponent_faced": "Raphinha",
            "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
            "projected_goals": 0,
            "goal_probability": 0.0401,
            "projected_assists": 0,
            "assist_probability": 0.0459,
            "finishing_factor": 0.9624,
            "creation_factor": 1.0215,
            "fifa_overall": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0955,
                "expected_assists": 0.1001,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 35,
                "accurate_pass": 34,
                "tackles": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 81,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0148,
                "total_shots": 0,
                "total_pass": 11,
                "accurate_pass": 10,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 14,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0098,
                "expected_assists": 0.001,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 3,
                "accurate_pass": 2
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 76,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0137,
                "total_shots": 0,
                "total_pass": 35,
                "accurate_pass": 28,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0184,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 31,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 1,
                "duels_won": 3,
                "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": 2420,
            "combined_rank_score": 893.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 873.0,
            "sofascore_rating": 6.55,
            "sofascore_appearances": 2.0,
            "fifa_rank": 913.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 6,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.794,
            "source_file": "data/player_rankings.csv",
            "player_name": "Francho Serrano",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Bastián Ubal",
                  "ranking": 2415
                },
                {
                  "player_name": "Kim Ji-hun",
                  "ranking": 2416
                },
                {
                  "player_name": "Ayoub El Hmidi",
                  "ranking": 2417
                },
                {
                  "player_name": "Tommaso Benvenuti",
                  "ranking": 2418
                },
                {
                  "player_name": "Mukhammadali Giyosov",
                  "ranking": 2419
                }
              ],
              "lower": [
                {
                  "player_name": "Bryan Reyna",
                  "ranking": 2421
                },
                {
                  "player_name": "Ronaldo De Jesus",
                  "ranking": 2422
                },
                {
                  "player_name": "Kingsley Sokari",
                  "ranking": 2423
                },
                {
                  "player_name": "Muhammadayub Omonov",
                  "ranking": 2424
                },
                {
                  "player_name": "Ángel Mena",
                  "ranking": 2425
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.581,
          "history_matches": 5,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.581,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9816,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 2.0,
              "minutes": 165.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 0.0,
              "prior_reliability": 0.12
            },
            "rationale": "XGBoost regressor (M_service) evaluated 5 historical appearances across 8 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.12, gls/90: 0.0, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0581,
                "assist_rate": 0.0628,
                "assists": 0,
                "expected_goals": 0.1062,
                "goal_rate": 0.1038,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.6,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 7.5
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 14.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 1.0,
                  "totalShots": 0.7341,
                  "expectedAssists": 0.0354,
                  "creative_index": 0.0213,
                  "creative_efficiency": 0.0,
                  "shotValueNormalized": -0.0428,
                  "dribbleValueNormalized": 0.1069
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.5440081357955933,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.1658
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.1106
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0333
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0281
                        },
                        {
                          "name": "keyPass_p90",
                          "contribution": -0.0264
                        }
                      ],
                      "others": -0.0185,
                      "total": 0.544,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.197125
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.157012
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.052505
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.046583
                        },
                        {
                          "name": "keyPass_p90",
                          "margin": -0.04581
                        }
                      ],
                      "others_margin": -0.033607
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.05811748281121254,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0162
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0046
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0036
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": 0.0035
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0054,
                      "total": 0.0581,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.205465
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.066299
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.055335
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": 0.053649
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.042418
                        }
                      ],
                      "others_margin": -0.090228
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.06281893700361252,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0116
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0051
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.003
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0028
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0019
                        }
                      ],
                      "others": -0.0039,
                      "total": 0.0628,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": -0.146234
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.071792
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.043236
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.040652
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.027353
                        }
                      ],
                      "others_margin": -0.061261
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.10623715072870255,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0435
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0109
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0084
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0043
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0065,
                      "total": 0.1062,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.271865
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.081544
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.068056
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.03672
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.024108
                        }
                      ],
                      "others_margin": -0.059481
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.10375521332025528,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0294
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0158
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0053
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0051
                        },
                        {
                          "name": "intensity_index",
                          "contribution": 0.0045
                        }
                      ],
                      "others": -0.0036,
                      "total": 0.1038,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.221225
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.143389
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.050732
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.04855
                        },
                        {
                          "name": "intensity_index",
                          "margin": 0.042833
                        }
                      ],
                      "others_margin": -0.034957
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.21546810865402222,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.129
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0106
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0082
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0076
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "contribution": 0.0054
                        }
                      ],
                      "others": -0.0083,
                      "total": 0.2155,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.481735
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.049748
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.037955
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.035494
                        },
                        {
                          "name": "defensive_midfield_actions",
                          "margin": 0.024469
                        }
                      ],
                      "others_margin": -0.038568
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8686681086540222,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.1544
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.0525
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0341
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0317
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0292
                        }
                      ],
                      "others": 0.0274,
                      "total": 0.8686,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.154417
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.052519
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.034055
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.031659
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.02925
                        }
                      ],
                      "others_margin": 0.027442
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.793966770172119,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.027
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0262
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0207
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0116
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0102
                        }
                      ],
                      "others": -0.0639,
                      "total": 6.794,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.026962
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.026247
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.020736
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.011585
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.010168
                        }
                      ],
                      "others_margin": -0.064057
                    }
                  }
                ],
                "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.9816, quality 0.439)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.057,
                "assist_rate": 0.0617,
                "assists": 0,
                "expected_goals": 0.1043,
                "goal_rate": 0.1018,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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": 3100000,
                "quality_factor": 0.4387,
                "boost_factor": 0.9816
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0390)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.057,
                "assist_rate": 0.0593,
                "assists": 0,
                "expected_goals": 0.1043,
                "goal_rate": 0.0978,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 61.1,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.039,
                "history_matches": 5,
                "prior_reliability": 0.12,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.1083
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.0,
                  "after": 0.065
                },
                {
                  "stat": "totalShots",
                  "before": 0.8527,
                  "after": 0.8194
                },
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0217
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0217
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0217
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2115,
                  "after": 0.2033
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.057,
                "assist_rate": 0.0593,
                "assists": 0,
                "expected_goals": 0.1043,
                "goal_rate": 0.0978,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 61.1,
                "pointsPerMatch": 1.5,
                "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.057,
                "assist_rate": 0.0593,
                "assists": 0,
                "expected_goals": 0.075,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 61.1,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7189,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.229,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Raphinha",
                "opponent_faced": "Raphinha",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Raphinha",
                  "matchup_zone": "RWB vs LWB",
                  "duel_win_rate": 0.229,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.7189,
                  "skill_edge": -0.1952,
                  "height_edge": 0.004,
                  "attacker_skill": 0.4551,
                  "defender_skill": 0.889,
                  "xg_override": 0.075
                }
              },
              "changes": [
                {
                  "stat": "aerialWon",
                  "before": 0.0,
                  "after": 1.0
                },
                {
                  "stat": "totalShots",
                  "before": 0.8445,
                  "after": 0.6072
                },
                {
                  "stat": "shotOffTarget",
                  "before": 0.6412,
                  "after": 0.461
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.2033,
                  "after": 0.1462
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.1043,
                  "after": 0.075
                },
                {
                  "stat": "goals",
                  "before": 0.0978,
                  "after": 0.0703
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.047,
                "assist_rate": 0.0593,
                "assists": 0,
                "expected_goals": 0.0409,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 61.1,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7189,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.229,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Raphinha",
                "opponent_faced": "Raphinha",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9624,
                "creation_factor": 1.0215
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.075,
                  "after": 0.0409
                },
                {
                  "stat": "expected_assists",
                  "before": 0.057,
                  "after": 0.047
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 6 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.047,
                "assist_rate": 0.0593,
                "assists": 0,
                "expected_goals": 0.0409,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 61.1,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7189,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.229,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Raphinha",
                "opponent_faced": "Raphinha",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9624,
                "creation_factor": 1.0215,
                "fifa_overall": 79.0
              },
              "params": {
                "match_squad_rank": 6,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2420,
                "fifa_rank": 913.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.047,
                "assist_rate": 0.0593,
                "assists": 0,
                "expected_goals": 0.0409,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 61.1,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7189,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.229,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Raphinha",
                "opponent_faced": "Raphinha",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0401,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9624,
                "creation_factor": 1.0215,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0401,
                "scorer_weight": 0.0394,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0649,
                "finishing_factor": 0.9624,
                "appearance_weight": 1.0,
                "weight_rank": 6,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.047,
                "assist_rate": 0.0593,
                "assists": 0,
                "expected_goals": 0.0409,
                "goal_rate": 0.0703,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.794,
                "minutes": 70,
                "total_pass": 24,
                "accurate_pass": 21,
                "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": 17,
                "accurate_opp_half_passes": 14,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 34,
                "possession_lost": 6.4786,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "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,
                "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": 0,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 61.1,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7189,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.4,
                "crosses_attempted": 2.2,
                "duel_win_rate": 0.229,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "RWB vs LWB",
                "numerical_situation": "1v1",
                "opponent_defenders": "Raphinha",
                "opponent_faced": "Raphinha",
                "antagonist_source": "defensive_duel, attacking_duel, midfield_pairing",
                "projected_goals": 0,
                "goal_probability": 0.0401,
                "projected_assists": 0,
                "assist_probability": 0.0459,
                "finishing_factor": 0.9624,
                "creation_factor": 1.0215,
                "fifa_overall": 79.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0459,
                "provider_weight": 0.048,
                "squad_weight_total": 0.4059,
                "weight_share": 0.1183,
                "creation_factor": 1.0215,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 14
              }
            }
          ]
        },
        "Christantus Uche": {
          "player_id": 1884145,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 8,
          "height": 190,
          "market_value": 13200000,
          "stats": {
            "expected_goals": 0.1231,
            "goal_rate": 0.1406,
            "goals": 0,
            "total_shots": 2,
            "shots_on_target": 1,
            "expected_assists": 0.0808,
            "duels_won": 4,
            "aerial_won": 2,
            "rating": 7.0,
            "minutes": 90,
            "total_pass": 30,
            "accurate_pass": 22,
            "total_long_balls": 1,
            "accurate_long_balls": 1,
            "total_opp_half_passes": 16,
            "accurate_opp_half_passes": 12,
            "crosses_total": 2,
            "crosses_accurate": 1,
            "touches": 44,
            "possession_lost": 8.9,
            "dispossessed": 1.2,
            "duels_lost": 5,
            "aerial_lost": 1,
            "total_contest": 6,
            "won_contest": 3,
            "ball_recovery": 2,
            "challenges_lost": 1,
            "fouls": 2,
            "fouls_drawn": 1,
            "assist_rate": 0.09,
            "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.0938,
            "offsides": 1,
            "ball_carries": 21,
            "total_progression": 53,
            "progressive_carries": 5,
            "duel_xg_multiplier": 0.8268,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.3,
            "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": "Pau Cubarsí, Jules Koundé",
            "opponent_faced": "Pau Cubarsí, Jules Koundé",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.1158,
            "projected_assists": 0,
            "assist_probability": 0.0776,
            "finishing_factor": 0.8,
            "creation_factor": 0.9459,
            "fifa_overall": 75.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 3346,
            "combined_rank_score": 1296.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 199.0,
            "sofascore_rating": 7.2,
            "sofascore_appearances": 3.0,
            "fifa_rank": 2393.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 3,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 7.0,
            "source_file": "data/player_rankings.csv",
            "player_name": "Christantus Uche",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Musa Barrow",
                  "ranking": 3341
                },
                {
                  "player_name": "Mailson",
                  "ranking": 3342
                },
                {
                  "player_name": "Lautaro Blanco",
                  "ranking": 3343
                },
                {
                  "player_name": "Mourad Batna",
                  "ranking": 3344
                },
                {
                  "player_name": "Musab Al Juwair",
                  "ranking": 3345
                }
              ],
              "lower": [
                {
                  "player_name": "Yerry Mina",
                  "ranking": 3347
                },
                {
                  "player_name": "Ángel Correa",
                  "ranking": 3348
                },
                {
                  "player_name": "Patrik Hrošovský",
                  "ranking": 3349
                },
                {
                  "player_name": "Aníbal Moreno",
                  "ranking": 3350
                },
                {
                  "player_name": "Morato",
                  "ranking": 3351
                }
              ]
            }
          },
          "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"
            ],
            "market_value_adjustment": 0.5593,
            "fbref_prior_metrics": null,
            "rationale": "Market-value baseline (€13,200,000) applied for position F (quality factor 0.56)."
          },
          "stat_evolution": [
            {
              "step": "market_value_prior",
              "description": "Market-value baseline for position F (quality 0.56)",
              "stats": {
                "expected_goals": 0.273,
                "goal_rate": 0.17,
                "goals": 0,
                "total_shots": 3,
                "shots_on_target": 2,
                "expected_assists": 0.098,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.0,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 44,
                "possession_lost": 8.9,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.208,
                "offsides": 1,
                "ball_carries": 21,
                "total_progression": 53,
                "progressive_carries": 5
              },
              "params": {
                "market_value_eur": 13200000,
                "quality_factor": 0.5593
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.273,
                "goal_rate": 0.17,
                "goals": 0,
                "total_shots": 3,
                "shots_on_target": 2,
                "expected_assists": 0.098,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.0,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 44,
                "possession_lost": 8.9,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.208,
                "offsides": 1,
                "ball_carries": 21,
                "total_progression": 53,
                "progressive_carries": 5
              },
              "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.2257,
                "goal_rate": 0.1406,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.098,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.0,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 44,
                "possession_lost": 8.9,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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": 21,
                "total_progression": 53,
                "progressive_carries": 5,
                "duel_xg_multiplier": 0.8268,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "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": "Pau Cubarsí, Jules Koundé",
                "opponent_faced": "Pau Cubarsí, Jules Koundé",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pau Cubarsí, Jules Koundé",
                  "matchup_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
                  "duel_win_rate": 0.18,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v2",
                  "xg_multiplier": 0.8268,
                  "skill_edge": -0.1498,
                  "height_edge": 0.032,
                  "attacker_skill": 0.5593,
                  "defender_skill": 0.8921,
                  "xg_override": 0.2257
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 2.7,
                  "after": 2.2324
                },
                {
                  "stat": "aerialWon",
                  "before": 1.7,
                  "after": 2.0
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 1.5,
                  "after": 1.2402
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.0,
                  "after": 0.8268
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.273,
                  "after": 0.2257
                },
                {
                  "stat": "expectedGoalsOnTarget",
                  "before": 0.208,
                  "after": 0.172
                },
                {
                  "stat": "goals",
                  "before": 0.17,
                  "after": 0.1406
                },
                {
                  "stat": "bigChanceMissed",
                  "before": 0.16,
                  "after": 0.1323
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.1231,
                "goal_rate": 0.1406,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.0808,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.0,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 44,
                "possession_lost": 8.9,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.0938,
                "offsides": 1,
                "ball_carries": 21,
                "total_progression": 53,
                "progressive_carries": 5,
                "duel_xg_multiplier": 0.8268,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "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": "Pau Cubarsí, Jules Koundé",
                "opponent_faced": "Pau Cubarsí, Jules Koundé",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9459
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2257,
                  "after": 0.1231
                },
                {
                  "stat": "expected_assists",
                  "before": 0.098,
                  "after": 0.0808
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 3 by projected rating, fifa_overall 75.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.1231,
                "goal_rate": 0.1406,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.0808,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.0,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 44,
                "possession_lost": 8.9,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.0938,
                "offsides": 1,
                "ball_carries": 21,
                "total_progression": 53,
                "progressive_carries": 5,
                "duel_xg_multiplier": 0.8268,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "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": "Pau Cubarsí, Jules Koundé",
                "opponent_faced": "Pau Cubarsí, Jules Koundé",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9459,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 3,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3346,
                "fifa_rank": 2393.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.1231,
                "goal_rate": 0.1406,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.0808,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.0,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 44,
                "possession_lost": 8.9,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.0938,
                "offsides": 1,
                "ball_carries": 21,
                "total_progression": 53,
                "progressive_carries": 5,
                "duel_xg_multiplier": 0.8268,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "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": "Pau Cubarsí, Jules Koundé",
                "opponent_faced": "Pau Cubarsí, Jules Koundé",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1158,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8,
                "creation_factor": 0.9459,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.1158,
                "scorer_weight": 0.0985,
                "squad_weight_total": 0.6066,
                "weight_share": 0.1623,
                "finishing_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 3,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.1231,
                "goal_rate": 0.1406,
                "goals": 0,
                "total_shots": 2,
                "shots_on_target": 1,
                "expected_assists": 0.0808,
                "duels_won": 4,
                "aerial_won": 2,
                "rating": 7.0,
                "minutes": 90,
                "total_pass": 30,
                "accurate_pass": 22,
                "total_long_balls": 1,
                "accurate_long_balls": 1,
                "total_opp_half_passes": 16,
                "accurate_opp_half_passes": 12,
                "crosses_total": 2,
                "crosses_accurate": 1,
                "touches": 44,
                "possession_lost": 8.9,
                "dispossessed": 1.2,
                "duels_lost": 5,
                "aerial_lost": 1,
                "total_contest": 6,
                "won_contest": 3,
                "ball_recovery": 2,
                "challenges_lost": 1,
                "fouls": 2,
                "fouls_drawn": 1,
                "assist_rate": 0.09,
                "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.0938,
                "offsides": 1,
                "ball_carries": 21,
                "total_progression": 53,
                "progressive_carries": 5,
                "duel_xg_multiplier": 0.8268,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.3,
                "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": "Pau Cubarsí, Jules Koundé",
                "opponent_faced": "Pau Cubarsí, Jules Koundé",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1158,
                "projected_assists": 0,
                "assist_probability": 0.0776,
                "finishing_factor": 0.8,
                "creation_factor": 0.9459,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0776,
                "provider_weight": 0.0764,
                "squad_weight_total": 0.4059,
                "weight_share": 0.1883,
                "creation_factor": 0.9459,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 14
              }
            }
          ]
        },
        "Martín Satriano": {
          "player_id": 973536,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 10,
          "height": 187,
          "market_value": 10600000,
          "stats": {
            "expected_goals": 0.1204,
            "goal_rate": 0.1887,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0351,
            "key_pass": 1,
            "rating": 6.777,
            "minutes": 78,
            "total_pass": 17,
            "accurate_pass": 0,
            "duels_won": 6,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 12,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 32,
            "possession_lost": 12.2474,
            "dispossessed": 0.0,
            "duels_lost": 7,
            "aerial_lost": 0,
            "total_contest": 3,
            "won_contest": 0,
            "ball_recovery": 2,
            "challenges_lost": 0,
            "fouls": 2,
            "fouls_drawn": 0,
            "assist_rate": 0.1343,
            "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": 9,
            "total_progression": 29,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 16.7,
            "shotConversion": 0.0,
            "minutesPct": 91.1,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.7738,
            "dribbles_attempted": 3,
            "dribbles_successful": 0.8,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.296,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "numerical_situation": "1v1",
            "opponent_defenders": "Pau Cubarsí",
            "opponent_faced": "Pau Cubarsí",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.1134,
            "projected_assists": 0,
            "assist_probability": 0.0345,
            "finishing_factor": 0.8818,
            "creation_factor": 1.25,
            "fifa_overall": 77.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.052,
                "expected_assists": 0.0819,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 21,
                "accurate_pass": 13,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 11,
                "ball_recovery": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 45,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0183,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 5,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 89,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0557,
                "expected_assists": 0.1454,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 2,
                "total_pass": 20,
                "accurate_pass": 11,
                "key_pass": 3,
                "tackles": 2,
                "interceptions": 1,
                "aerial_won": 1,
                "duels_won": 4,
                "ball_recovery": 1
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 73,
                "rating": 7.6,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2666,
                "expected_assists": 0.0048,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 9,
                "duels_won": 3,
                "ball_recovery": 5
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 86,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.2807,
                "expected_assists": 0.0398,
                "total_shots": 3,
                "shots_off_target": 2,
                "total_pass": 25,
                "accurate_pass": 18,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 89,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0667,
                "expected_assists": 0.0053,
                "total_shots": 2,
                "shots_off_target": 1,
                "total_pass": 15,
                "accurate_pass": 11,
                "key_pass": 1,
                "clearances": 2,
                "aerial_won": 3,
                "duels_won": 8,
                "ball_recovery": 1
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 73,
                "rating": 6.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0342,
                "expected_assists": 0.0052,
                "total_shots": 1,
                "shots_on_target": 1,
                "total_pass": 18,
                "accurate_pass": 10,
                "clearances": 2,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3117,
            "combined_rank_score": 1079.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 583.0,
            "sofascore_rating": 6.7944,
            "sofascore_appearances": 18.0,
            "fifa_rank": 1576.0,
            "fifa_overall": 77.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 7,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.777,
            "source_file": "data/player_rankings.csv",
            "player_name": "Martín Satriano",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Tsuyoshi Watanabe",
                  "ranking": 3112
                },
                {
                  "player_name": "Arnau Martínez",
                  "ranking": 3113
                },
                {
                  "player_name": "Ayase Ueda",
                  "ranking": 3114
                },
                {
                  "player_name": "Mika Godts",
                  "ranking": 3115
                },
                {
                  "player_name": "Youri Baas",
                  "ranking": 3116
                }
              ],
              "lower": [
                {
                  "player_name": "Marcos Leonardo",
                  "ranking": 3118
                },
                {
                  "player_name": "Chidera Ejuke",
                  "ranking": 3119
                },
                {
                  "player_name": "Adrián Martínez",
                  "ranking": 3120
                },
                {
                  "player_name": "Emile Smith Rowe",
                  "ranking": 3121
                },
                {
                  "player_name": "Santiago Giménez",
                  "ranking": 3122
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.715,
          "history_matches": 7,
          "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": 7,
            "data_confidence": 0.715,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 1.0088,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "minutes": 246.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "shots_per90": 2.2,
              "shots_on_target_pct": 16.7,
              "prior_reliability": 0.18
            },
            "rationale": "XGBoost regressor (F_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.18, 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.2827,
                "goal_rate": 0.2542,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0422,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.14,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.14,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 73.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 7.6
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 86.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 73.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.1
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.3784,
                  "totalShots": 1.9186,
                  "minutesPlayed": 76.8957,
                  "shotValueNormalized": -0.1139,
                  "accuratePass": 9.8296,
                  "expectedAssists": 0.0475
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.2826605439186096,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0738
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0207
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0108
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0106
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0094
                        }
                      ],
                      "others": -0.0176,
                      "total": 0.2827,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.227455
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.069238
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.034164
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.033577
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.0307
                        }
                      ],
                      "others_margin": -0.060715
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.254158079624176,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0424
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0218
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0196
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.011
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": -0.0094
                        }
                      ],
                      "others": 0.0106,
                      "total": 0.2542,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.160011
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.093682
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.084471
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.044602
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": -0.037996
                        }
                      ],
                      "others_margin": 0.04241
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.5465211868286133,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1232
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0846
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0286
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0184
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0177
                        }
                      ],
                      "others": 0.0038,
                      "total": 0.5465,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.234742
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.167031
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.050613
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.032274
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.032139
                        }
                      ],
                      "others_margin": 0.006991
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.8913211868286133,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.2037
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.1628
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0563
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0502
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0466
                        }
                      ],
                      "others": 0.0297,
                      "total": 1.8913,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": 0.203745
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.16282
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.056296
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.05016
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.046603
                        }
                      ],
                      "others_margin": 0.02968
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.04223807528614998,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0054
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0026
                        },
                        {
                          "name": "duelWon_p90",
                          "contribution": -0.0024
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0022
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0022
                        }
                      ],
                      "others": -0.0074,
                      "total": 0.0422,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.095008
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.048668
                        },
                        {
                          "name": "duelWon_p90",
                          "margin": -0.047156
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.043045
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.042843
                        }
                      ],
                      "others_margin": -0.161181
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.6326157450675964,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0478
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0161
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": 0.0148
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0145
                        },
                        {
                          "name": "keyPass",
                          "contribution": 0.0138
                        }
                      ],
                      "others": 0.0042,
                      "total": 0.6326,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.073134
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.025899
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": 0.023816
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.023338
                        },
                        {
                          "name": "keyPass",
                          "margin": 0.022184
                        }
                      ],
                      "others_margin": 0.006762
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.7769575119018555,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.039
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0344
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0211
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": 0.0089
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0086
                        }
                      ],
                      "others": -0.0126,
                      "total": 6.777,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.038973
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.034362
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.021053
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": 0.00891
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.008594
                        }
                      ],
                      "others_margin": -0.012656
                    }
                  }
                ],
                "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.0088, quality 0.529)",
              "stats": {
                "expected_goals": 0.2852,
                "goal_rate": 0.2564,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0426,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1412,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 10600000,
                "quality_factor": 0.5295,
                "boost_factor": 1.0088
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0488)",
              "stats": {
                "expected_goals": 0.2852,
                "goal_rate": 0.2439,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0426,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1343,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.0,
                "minutesPct": 91.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -0.37
              },
              "params": {
                "blend_weight": 0.0488,
                "history_matches": 7,
                "prior_reliability": 0.18,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.1444
                },
                {
                  "stat": "fouls",
                  "before": 1.8765,
                  "after": 1.8572
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0181
                },
                {
                  "stat": "totalShots",
                  "before": 1.9081,
                  "after": 1.9223
                },
                {
                  "stat": "goals",
                  "before": 0.2564,
                  "after": 0.2439
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5514,
                  "after": 0.5426
                },
                {
                  "stat": "goalAssist",
                  "before": 0.1412,
                  "after": 0.1343
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.2852,
                "goal_rate": 0.2439,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 2,
                "expected_assists": 0.0426,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1343,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.0,
                "minutesPct": 91.1,
                "pointsPerMatch": 1.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.2207,
                "goal_rate": 0.1887,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0426,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1343,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.0,
                "minutesPct": 91.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7738,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.296,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pau Cubarsí",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                  "duel_win_rate": 0.296,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.7738,
                  "skill_edge": -0.1659,
                  "height_edge": 0.012,
                  "attacker_skill": 0.5295,
                  "defender_skill": 0.8981,
                  "xg_override": 0.2207
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.9223,
                  "after": 1.4875
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.3567,
                  "after": 1.0498
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.5426,
                  "after": 0.4199
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.2852,
                  "after": 0.2207
                },
                {
                  "stat": "goals",
                  "before": 0.2439,
                  "after": 0.1887
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.1204,
                "goal_rate": 0.1887,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0351,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1343,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.0,
                "minutesPct": 91.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7738,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.296,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8818,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2207,
                  "after": 0.1204
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0426,
                  "after": 0.0351
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 7 by projected rating, fifa_overall 77.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.1204,
                "goal_rate": 0.1887,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0351,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1343,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.0,
                "minutesPct": 91.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7738,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.296,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8818,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "match_squad_rank": 7,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3117,
                "fifa_rank": 1576.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 77.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.1204,
                "goal_rate": 0.1887,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0351,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1343,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.0,
                "minutesPct": 91.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7738,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.296,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1134,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.8818,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.1134,
                "scorer_weight": 0.1062,
                "squad_weight_total": 0.6066,
                "weight_share": 0.175,
                "finishing_factor": 0.8818,
                "appearance_weight": 1.0,
                "weight_rank": 2,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.1204,
                "goal_rate": 0.1887,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0351,
                "key_pass": 1,
                "rating": 6.777,
                "minutes": 78,
                "total_pass": 17,
                "accurate_pass": 0,
                "duels_won": 6,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 32,
                "possession_lost": 12.2474,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 0,
                "total_contest": 3,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 2,
                "fouls_drawn": 0,
                "assist_rate": 0.1343,
                "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": 9,
                "total_progression": 29,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 16.7,
                "shotConversion": 0.0,
                "minutesPct": 91.1,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7738,
                "dribbles_attempted": 3,
                "dribbles_successful": 0.8,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.296,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1134,
                "projected_assists": 0,
                "assist_probability": 0.0345,
                "finishing_factor": 0.8818,
                "creation_factor": 1.25,
                "fifa_overall": 77.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0345,
                "provider_weight": 0.0439,
                "squad_weight_total": 0.4059,
                "weight_share": 0.1081,
                "creation_factor": 1.25,
                "appearance_weight": 1.0,
                "weight_rank": 4,
                "eligible_players": 14
              }
            }
          ]
        },
        "Enes Ünal": {
          "player_id": 336655,
          "position": "F",
          "position_depth": "F",
          "is_starter": true,
          "shirt_number": 19,
          "height": 185,
          "market_value": 6800000,
          "stats": {
            "expected_goals": 0.1198,
            "goal_rate": 0.1947,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0243,
            "key_pass": 1,
            "rating": 6.7054,
            "minutes": 77,
            "total_pass": 15,
            "accurate_pass": 9,
            "duels_won": 5,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 12,
            "accurate_opp_half_passes": 7,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 30,
            "possession_lost": 12.371,
            "dispossessed": 0.0,
            "duels_lost": 7,
            "aerial_lost": 2,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 0,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.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": 5,
            "total_progression": 1,
            "progressive_carries": 1,
            "shots_off_target": 1,
            "yellowCards": 0.4,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "shotAccuracy": 25.0,
            "shotConversion": 0.25,
            "minutesPct": 83.3,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "duel_xg_multiplier": 0.7321,
            "dribbles_attempted": 2,
            "dribbles_successful": 0.5,
            "aerial_won": 1,
            "crosses_attempted": 0.0,
            "duel_win_rate": 0.268,
            "pressing_faced": "ULTRA_HIGH",
            "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
            "numerical_situation": "1v1",
            "opponent_defenders": "Pau Cubarsí",
            "opponent_faced": "Pau Cubarsí",
            "antagonist_source": "attacking_duel",
            "projected_goals": 0,
            "goal_probability": 0.1129,
            "projected_assists": 0,
            "assist_probability": 0.024,
            "finishing_factor": 0.9073,
            "creation_factor": 0.8,
            "fifa_overall": 75.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1533,
                "expected_assists": 0.0322,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 15,
                "accurate_pass": 13,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 45,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0057,
                "total_shots": 0,
                "total_pass": 8,
                "accurate_pass": 6,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0392,
                "expected_assists": 0.0285,
                "total_shots": 2,
                "shots_off_target": 2,
                "total_pass": 18,
                "accurate_pass": 12,
                "key_pass": 1,
                "tackles": 1,
                "aerial_won": 4,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.1,
                "expected_assists": 0.0149,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 10,
                "accurate_pass": 4,
                "key_pass": 1,
                "tackles": 1,
                "clearances": 1,
                "aerial_won": 5,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0286,
                "total_shots": 0,
                "total_pass": 19,
                "accurate_pass": 12,
                "key_pass": 2,
                "tackles": 2,
                "tackles_won": 2,
                "aerial_won": 2,
                "duels_won": 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"
            },
            {
              "match_id": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.965,
                "expected_assists": 0.0057,
                "total_shots": 3,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 15,
                "accurate_pass": 8,
                "tackles": 3,
                "tackles_won": 3,
                "aerial_won": 2,
                "duels_won": 5,
                "ball_recovery": 2
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 45,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0861,
                "expected_assists": 0.0038,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 17,
                "accurate_pass": 11,
                "aerial_won": 4,
                "duels_won": 4
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3539,
            "combined_rank_score": 1506.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 822.0,
            "sofascore_rating": 6.6,
            "sofascore_appearances": 3.0,
            "fifa_rank": 2191.0,
            "fifa_overall": 75.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 12,
            "squad_role": "starter",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7054,
            "source_file": "data/player_rankings.csv",
            "player_name": "Enes Ünal",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Hugo Álvarez",
                  "ranking": 3534
                },
                {
                  "player_name": "Israel Reyes",
                  "ranking": 3535
                },
                {
                  "player_name": "Rocco Reitz",
                  "ranking": 3536
                },
                {
                  "player_name": "Chrislain Matsima",
                  "ranking": 3537
                },
                {
                  "player_name": "Yan Couto",
                  "ranking": 3538
                }
              ],
              "lower": [
                {
                  "player_name": "Issa Diop",
                  "ranking": 3540
                },
                {
                  "player_name": "Senne Lynen",
                  "ranking": 3541
                },
                {
                  "player_name": "Sergio Camello",
                  "ranking": 3542
                },
                {
                  "player_name": "Mio Backhaus",
                  "ranking": 3543
                },
                {
                  "player_name": "Jindřich Staněk",
                  "ranking": 3544
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.713,
          "history_matches": 7,
          "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": 7,
            "data_confidence": 0.713,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "market_value_adjustment": 0.9953,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 2.0,
              "minutes": 225.0,
              "goals_per90": 0.4,
              "assists_per90": 0.0,
              "shots_per90": 1.6,
              "shots_on_target_pct": 25.0,
              "prior_reliability": 0.1667
            },
            "rationale": "XGBoost regressor (F_service) evaluated 7 historical appearances across 7 target models; FBref 2026-2027 prior blended (La Liga, Getafe, rel: 0.17, gls/90: 0.4, ast/90: 0.0)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.3015,
                "goal_rate": 0.2608,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "expected_assists": 0.0296,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.43,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 45.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 1.0,
                  "onTargetScoringAttempt": 0.3187,
                  "totalShots": 1.4941,
                  "minutesPlayed": 77.8084,
                  "shotValueNormalized": -0.1344,
                  "accuratePass": 9.535,
                  "expectedAssists": 0.0189
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.30153578519821167,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0676
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0214
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0126
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0114
                        },
                        {
                          "name": "aerialLost",
                          "contribution": 0.009
                        }
                      ],
                      "others": -0.0251,
                      "total": 0.3015,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.206425
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.069907
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.039082
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.03517
                        },
                        {
                          "name": "aerialLost",
                          "margin": 0.027909
                        }
                      ],
                      "others_margin": -0.079707
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.2608284056186676,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0369
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0321
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0151
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0142
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0129
                        }
                      ],
                      "others": 0.0552,
                      "total": 0.2608,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.137931
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.137416
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.067032
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.062735
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.060718
                        }
                      ],
                      "others_margin": 0.23747
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.48799046874046326,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1308
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0875
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0296
                        },
                        {
                          "name": "dispossessed",
                          "contribution": 0.0249
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0188
                        }
                      ],
                      "others": -0.034,
                      "total": 0.488,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.251246
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.174813
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.055758
                        },
                        {
                          "name": "dispossessed",
                          "margin": 0.047074
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.035324
                        }
                      ],
                      "others_margin": -0.067358
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 1.9429304599761963,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.2296
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.2105
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0701
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": 0.0454
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0424
                        }
                      ],
                      "others": -0.0055,
                      "total": 1.9429,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": 0.229598
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.210488
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.070086
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": 0.045404
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.042365
                        }
                      ],
                      "others_margin": -0.005475
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.029595166444778442,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0153
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.003
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0026
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0017
                        },
                        {
                          "name": "totalPass",
                          "contribution": 0.0017
                        }
                      ],
                      "others": -0.0095,
                      "total": 0.0296,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.29464
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.069852
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.064557
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.045505
                        },
                        {
                          "name": "totalPass",
                          "margin": 0.04403
                        }
                      ],
                      "others_margin": -0.276997
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5705159306526184,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2015
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.0326
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0335
                        },
                        {
                          "name": "aerialWon",
                          "contribution": 0.0308
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": 0.0212
                        }
                      ],
                      "others": -0.0243,
                      "total": 0.5705,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.352474
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.066227
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.06361
                        },
                        {
                          "name": "aerialWon",
                          "margin": 0.055169
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": 0.03628
                        }
                      ],
                      "others_margin": -0.041742
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.705434799194336,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0433
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0416
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.023
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0164
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0105
                        }
                      ],
                      "others": -0.0076,
                      "total": 6.7054,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.043263
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.041612
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.023039
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.016355
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010526
                        }
                      ],
                      "others_margin": -0.007439
                    }
                  }
                ],
                "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.9953, quality 0.484)",
              "stats": {
                "expected_goals": 0.3001,
                "goal_rate": 0.2596,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "expected_assists": 0.0295,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 6800000,
                "quality_factor": 0.4842,
                "boost_factor": 0.9953
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0451)",
              "stats": {
                "expected_goals": 0.3001,
                "goal_rate": 0.2659,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "expected_assists": 0.0295,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.4,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 83.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -1.2
              },
              "params": {
                "blend_weight": 0.0451,
                "history_matches": 7,
                "prior_reliability": 0.1667,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "wonTackle",
                  "before": 0.0,
                  "after": 0.0903
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0722
                },
                {
                  "stat": "totalOffside",
                  "before": 0.0,
                  "after": 0.0542
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0361
                },
                {
                  "stat": "totalShots",
                  "before": 1.9337,
                  "after": 1.9186
                },
                {
                  "stat": "goals",
                  "before": 0.2596,
                  "after": 0.2659
                }
              ]
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.3001,
                "goal_rate": 0.2659,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 2,
                "expected_assists": 0.0295,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.4,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 83.3,
                "pointsPerMatch": 1.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.2197,
                "goal_rate": 0.1947,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0295,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.4,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 83.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7321,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.268,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel"
              },
              "params": {
                "duel_context_applied": true,
                "duel_context": {
                  "opponent_faced": "Pau Cubarsí",
                  "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                  "duel_win_rate": 0.268,
                  "pressing_faced": "ULTRA_HIGH",
                  "numerical_situation": "1v1",
                  "xg_multiplier": 0.7321,
                  "skill_edge": -0.1863,
                  "height_edge": 0.004,
                  "attacker_skill": 0.4842,
                  "defender_skill": 0.8981,
                  "xg_override": 0.2197
                }
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 1.9298,
                  "after": 1.4128
                },
                {
                  "stat": "shotOffTarget",
                  "before": 1.448,
                  "after": 1.0601
                },
                {
                  "stat": "onTargetScoringAttempt",
                  "before": 0.4818,
                  "after": 0.3527
                },
                {
                  "stat": "expectedGoals",
                  "before": 0.3001,
                  "after": 0.2197
                },
                {
                  "stat": "goals",
                  "before": 0.2659,
                  "after": 0.1947
                }
              ]
            },
            {
              "step": "team_lambda_rescale",
              "description": "Player expected_goals/expected_assists rescaled so squad sum equals team lambda 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.1198,
                "goal_rate": 0.1947,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0243,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.4,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 83.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7321,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.268,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9073,
                "creation_factor": 0.8
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 1.0
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.2197,
                  "after": 0.1198
                },
                {
                  "stat": "expected_assists",
                  "before": 0.0295,
                  "after": 0.0243
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 12 by projected rating, fifa_overall 75.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.1198,
                "goal_rate": 0.1947,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0243,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.4,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 83.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7321,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.268,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.0,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9073,
                "creation_factor": 0.8,
                "fifa_overall": 75.0
              },
              "params": {
                "match_squad_rank": 12,
                "squad_role": "starter",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3539,
                "fifa_rank": 2191.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 75.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.1198,
                "goal_rate": 0.1947,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0243,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.4,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 83.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7321,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.268,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1129,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9073,
                "creation_factor": 0.8,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.1129,
                "scorer_weight": 0.1087,
                "squad_weight_total": 0.6066,
                "weight_share": 0.1792,
                "finishing_factor": 0.9073,
                "appearance_weight": 1.0,
                "weight_rank": 1,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.1198,
                "goal_rate": 0.1947,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0243,
                "key_pass": 1,
                "rating": 6.7054,
                "minutes": 77,
                "total_pass": 15,
                "accurate_pass": 9,
                "duels_won": 5,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 30,
                "possession_lost": 12.371,
                "dispossessed": 0.0,
                "duels_lost": 7,
                "aerial_lost": 2,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.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": 5,
                "total_progression": 1,
                "progressive_carries": 1,
                "shots_off_target": 1,
                "yellowCards": 0.4,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 25.0,
                "shotConversion": 0.25,
                "minutesPct": 83.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "duel_xg_multiplier": 0.7321,
                "dribbles_attempted": 2,
                "dribbles_successful": 0.5,
                "aerial_won": 1,
                "crosses_attempted": 0.0,
                "duel_win_rate": 0.268,
                "pressing_faced": "ULTRA_HIGH",
                "matchup_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
                "numerical_situation": "1v1",
                "opponent_defenders": "Pau Cubarsí",
                "opponent_faced": "Pau Cubarsí",
                "antagonist_source": "attacking_duel",
                "projected_goals": 0,
                "goal_probability": 0.1129,
                "projected_assists": 0,
                "assist_probability": 0.024,
                "finishing_factor": 0.9073,
                "creation_factor": 0.8,
                "fifa_overall": 75.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.024,
                "provider_weight": 0.0194,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0479,
                "creation_factor": 0.8,
                "appearance_weight": 1.0,
                "weight_rank": 8,
                "eligible_players": 14
              }
            }
          ]
        }
      },
      "bench_players": {
        "Jiří Letáček": {
          "player_id": 826047,
          "position": "G",
          "position_depth": "G_BENCH",
          "is_starter": false,
          "shirt_number": 1,
          "height": 196,
          "market_value": 1900000,
          "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": 3.079,
            "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": 69.0
          },
          "latest_10_games": [],
          "ranking": {
            "global_player_rank": 5396,
            "combined_rank_score": 3586.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 6955.0,
            "fifa_overall": 69.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 5,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8,
            "source_file": "data/player_rankings.csv",
            "player_name": "Jiří Letáček",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Mbaye Diagne",
                  "ranking": 5391
                },
                {
                  "player_name": "Cengiz Ünder",
                  "ranking": 5392
                },
                {
                  "player_name": "Christopher Opéri",
                  "ranking": 5393
                },
                {
                  "player_name": "Levent Mercan",
                  "ranking": 5394
                },
                {
                  "player_name": "Simon Eriksson",
                  "ranking": 5395
                }
              ],
              "lower": [
                {
                  "player_name": "Emin Bayram",
                  "ranking": 5397
                },
                {
                  "player_name": "Anthony Musaba",
                  "ranking": 5398
                },
                {
                  "player_name": "Archie Brown",
                  "ranking": 5399
                },
                {
                  "player_name": "Gift Orban",
                  "ranking": 5400
                },
                {
                  "player_name": "Semih Kılıçsoy",
                  "ranking": 5401
                }
              ]
            }
          },
          "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": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "sub_appearances": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection from market-value prior (€1,900,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": 1900000,
                "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": "La Liga",
                "squad": "Getafe"
              }
            },
            {
              "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 for display (match squad rank 5 by projected rating, fifa_overall 69.0; not used by the projection)",
              "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": 3.079,
                "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": 69.0
              },
              "params": {
                "match_squad_rank": 5,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 5396,
                "fifa_rank": 6955.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 69.0
              }
            }
          ]
        },
        "Djené": {
          "player_id": 307702,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 2,
          "height": 178,
          "market_value": 1500000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.712,
            "minutes": 14,
            "total_pass": 5,
            "accurate_pass": 4,
            "duels_won": 1,
            "total_long_balls": 1,
            "accurate_long_balls": 0,
            "total_own_half_passes": 3,
            "accurate_own_half_passes": 3,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 2,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 7,
            "possession_lost": 1.0565,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.003,
            "shots_on_target": 0,
            "big_chances_created": 0,
            "xgot": 0.0,
            "ball_carries": 2,
            "total_progression": 5,
            "progressive_carries": 0,
            "key_pass": 0,
            "shots_off_target": 0,
            "offsides": 0,
            "yellowCards": 0.6897,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 96.3,
            "pointsPerMatch": 1.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.217,
            "bench_expected_minutes": 13.57,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "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": 79.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 65,
                "rating": 7.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0063,
                "total_shots": 0,
                "total_pass": 28,
                "accurate_pass": 27,
                "clearances": 8,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 6.6,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0058,
                "total_shots": 0,
                "total_pass": 29,
                "accurate_pass": 25,
                "interceptions": 1,
                "clearances": 5,
                "aerial_won": 1,
                "duels_won": 2,
                "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"
            },
            {
              "match_id": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0351,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 27,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 7,
                "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0008,
                "total_shots": 0,
                "total_pass": 25,
                "accurate_pass": 18,
                "interceptions": 1,
                "ball_recovery": 3
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 90,
                "rating": 6.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0076,
                "total_shots": 0,
                "total_pass": 51,
                "accurate_pass": 44,
                "tackles": 2,
                "tackles_won": 1,
                "interceptions": 2,
                "clearances": 2,
                "duels_won": 2,
                "ball_recovery": 8
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0057,
                "total_shots": 0,
                "total_pass": 41,
                "accurate_pass": 34,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 2,
                "clearances": 3,
                "duels_won": 3,
                "ball_recovery": 9
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 81,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0507,
                "total_shots": 0,
                "total_pass": 38,
                "accurate_pass": 33,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 2308,
            "combined_rank_score": 841.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 842.0,
            "sofascore_rating": 6.5824,
            "sofascore_appearances": 34.0,
            "fifa_rank": 841.0,
            "fifa_overall": 79.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 10,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.712,
            "source_file": "data/player_rankings.csv",
            "player_name": "Djené",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Václav Černý",
                  "ranking": 2303
                },
                {
                  "player_name": "Christian Burgess",
                  "ranking": 2304
                },
                {
                  "player_name": "Sebastián Villa",
                  "ranking": 2305
                },
                {
                  "player_name": "Hidemasa Morita",
                  "ranking": 2306
                },
                {
                  "player_name": "Bryan Heynen",
                  "ranking": 2307
                }
              ],
              "lower": [
                {
                  "player_name": "Kevin Mac Allister",
                  "ranking": 2309
                },
                {
                  "player_name": "Bae Hyun-seo",
                  "ranking": 2310
                },
                {
                  "player_name": "Hervé Koffi",
                  "ranking": 2311
                },
                {
                  "player_name": "Ifeanyi Eze",
                  "ranking": 2312
                },
                {
                  "player_name": "Jack Harrison",
                  "ranking": 2313
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.716,
          "history_matches": 7,
          "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": 7,
            "data_confidence": 0.716,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 13.572222187561248,
            "bench_appearance_prob": 0.217,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 3.0,
              "starts": 3.0,
              "sub_appearances": 0.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.1933
            },
            "rationale": "Bench projection scaled from XGBoost D_service (7 historical appearances) to 13.6 expected mins (appearance prob 0.22); FBref playing time empirical prior: 0.0 sub appearances, 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": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.712,
                "minutes": 85,
                "total_pass": 36,
                "accurate_pass": 30,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 46,
                "possession_lost": 7.14,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.02,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 34,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 65.0,
                    "is_starting": true,
                    "weight": 0.2208,
                    "rating": 7.2
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1877,
                    "rating": 6.6
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1595,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1356,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1152,
                    "rating": 6.0
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.098,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 81.0,
                    "is_starting": true,
                    "weight": 0.0833,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 7.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 4.6785,
                  "defensive_actions": 1.8974,
                  "wonTackle": 0.6302,
                  "totalTackle_p90": 0.7454,
                  "totalClearance_p90": 5.3948,
                  "aerialWon": 1.1148
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.6705983877182007,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.2202
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0425
                        },
                        {
                          "name": "interceptionWon_p90",
                          "contribution": 0.0347
                        },
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0095
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0074
                        }
                      ],
                      "others": -0.0069,
                      "total": 0.6706,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.279326
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.064297
                        },
                        {
                          "name": "interceptionWon_p90",
                          "margin": 0.052785
                        },
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.013985
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.010884
                        }
                      ],
                      "others_margin": -0.010216
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 1.1358752250671387,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "totalTackle_p90",
                          "contribution": -0.0774
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0548
                        },
                        {
                          "name": "wonTackle",
                          "contribution": -0.0349
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0261
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0163
                        }
                      ],
                      "others": 0.0141,
                      "total": 1.1359,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "totalTackle_p90",
                          "margin": -0.059904
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.044704
                        },
                        {
                          "name": "wonTackle",
                          "margin": -0.029522
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.022657
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.014385
                        }
                      ],
                      "others_margin": 0.012409
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.6570695042610168,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1454
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.033
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0246
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0151
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0126
                        }
                      ],
                      "others": 0.013,
                      "total": 0.6571,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.193733
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.049766
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.037341
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.022795
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.019338
                        }
                      ],
                      "others_margin": 0.019937
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 2.677757740020752,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -1.1139
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.1832
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": 0.1014
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0706
                        },
                        {
                          "name": "totalLongBalls",
                          "contribution": 0.0637
                        }
                      ],
                      "others": -0.0148,
                      "total": 2.6778,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.398726
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.0775
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": 0.040427
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.027234
                        },
                        {
                          "name": "totalLongBalls",
                          "margin": 0.023931
                        }
                      ],
                      "others_margin": -0.005507
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.9545398354530334,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4074
                        },
                        {
                          "name": "totalClearance",
                          "contribution": 0.077
                        },
                        {
                          "name": "totalClearance_p90",
                          "contribution": 0.0572
                        },
                        {
                          "name": "press_vulnerability",
                          "contribution": 0.0433
                        },
                        {
                          "name": "aerialWon",
                          "contribution": -0.0331
                        }
                      ],
                      "others": -0.0521,
                      "total": 0.9545,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.386988
                        },
                        {
                          "name": "totalClearance",
                          "margin": 0.085509
                        },
                        {
                          "name": "totalClearance_p90",
                          "margin": 0.059148
                        },
                        {
                          "name": "press_vulnerability",
                          "margin": 0.042495
                        },
                        {
                          "name": "aerialWon",
                          "margin": -0.032355
                        }
                      ],
                      "others_margin": -0.053053
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.42103883624076843,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0515
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": 0.0283
                        },
                        {
                          "name": "aerialLost",
                          "contribution": -0.0265
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0132
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0113
                        }
                      ],
                      "others": -0.0034,
                      "total": 0.421,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.051473
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": 0.02828
                        },
                        {
                          "name": "aerialLost",
                          "margin": -0.026494
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.013174
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.011258
                        }
                      ],
                      "others_margin": -0.003402
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.711976051330566,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0249
                        },
                        {
                          "name": "ballRecovery",
                          "contribution": -0.0189
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0151
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.011
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0106
                        }
                      ],
                      "others": -0.0151,
                      "total": 6.712,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.024859
                        },
                        {
                          "name": "ballRecovery",
                          "margin": -0.018857
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.01506
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.010966
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.010578
                        }
                      ],
                      "others_margin": -0.015211
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.712,
                "minutes": 85,
                "total_pass": 35,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 45,
                "possession_lost": 7.006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0196,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 33,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 1500000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0524)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 3,
                "aerial_won": 1,
                "total_shots": 0,
                "rating": 6.712,
                "minutes": 85,
                "total_pass": 35,
                "accurate_pass": 29,
                "duels_won": 4,
                "total_long_balls": 7,
                "accurate_long_balls": 0,
                "total_own_half_passes": 20,
                "accurate_own_half_passes": 19,
                "total_opp_half_passes": 15,
                "accurate_opp_half_passes": 11,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 45,
                "possession_lost": 7.006,
                "dispossessed": 0.0,
                "duels_lost": 0,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 5,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "goal_rate": 0.0,
                "goals": 0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0196,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 11,
                "total_progression": 33,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.6897,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": -0.35
              },
              "params": {
                "blend_weight": 0.0524,
                "history_matches": 7,
                "prior_reliability": 0.1933,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0903
                },
                {
                  "stat": "interceptionWon",
                  "before": 0.658,
                  "after": 0.7138
                },
                {
                  "stat": "totalShots",
                  "before": 0.4131,
                  "after": 0.3915
                },
                {
                  "stat": "wonTackle",
                  "before": 0.6447,
                  "after": 0.6651
                },
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0181
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.6 expected minutes (appearance prob 0.22)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.712,
                "minutes": 14,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 1.0565,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.003,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.6897,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.217,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "expected_minutes": 13.57,
                "appearance_probability": 0.217
              }
            },
            {
              "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.712,
                "minutes": 14,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 1.0565,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.003,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.6897,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.217,
                "bench_expected_minutes": 13.57
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 10 by projected rating, fifa_overall 79.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.712,
                "minutes": 14,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 1,
                "total_long_balls": 1,
                "accurate_long_balls": 0,
                "total_own_half_passes": 3,
                "accurate_own_half_passes": 3,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 2,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 7,
                "possession_lost": 1.0565,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.003,
                "shots_on_target": 0,
                "big_chances_created": 0,
                "xgot": 0.0,
                "ball_carries": 2,
                "total_progression": 5,
                "progressive_carries": 0,
                "key_pass": 0,
                "shots_off_target": 0,
                "offsides": 0,
                "yellowCards": 0.6897,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 96.3,
                "pointsPerMatch": 1.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.217,
                "bench_expected_minutes": 13.57,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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": 79.0
              },
              "params": {
                "match_squad_rank": 10,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 2308,
                "fifa_rank": 841.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 79.0
              }
            }
          ]
        },
        "Sebastián Boselli": {
          "player_id": 1392092,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 15,
          "height": 183,
          "market_value": 1500000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.5742,
            "minutes": 11,
            "total_pass": 5,
            "accurate_pass": 4,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 0,
            "possession_lost": 0.0,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "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,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 5.9,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.602,
            "bench_expected_minutes": 10.51,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "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,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 21,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0215,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 84,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.037,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 12,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 12,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 1,
                "clearances": 1
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 9,
                "rating": 5.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3818,
            "combined_rank_score": 1819.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 721.0,
            "sofascore_rating": 6.68,
            "sofascore_appearances": 11.0,
            "fifa_rank": 2917.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.5742,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sebastián Boselli",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "David Møller Wolfe",
                  "ranking": 3813
                },
                {
                  "player_name": "Sebastian Berhalter",
                  "ranking": 3814
                },
                {
                  "player_name": "Sheraldo Becker",
                  "ranking": 3815
                },
                {
                  "player_name": "Hamza Igamane",
                  "ranking": 3816
                },
                {
                  "player_name": "Ciro Immobile",
                  "ranking": 3817
                }
              ],
              "lower": [
                {
                  "player_name": "Paul Pogba",
                  "ranking": 3819
                },
                {
                  "player_name": "Geoffrey Kondogbia",
                  "ranking": 3820
                },
                {
                  "player_name": "Mikey Moore",
                  "ranking": 3821
                },
                {
                  "player_name": "Laurent Abergel",
                  "ranking": 3822
                },
                {
                  "player_name": "Zeki Amdouni",
                  "ranking": 3823
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.564,
          "history_matches": 5,
          "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": 5,
            "data_confidence": 0.564,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 10.51,
            "bench_appearance_prob": 0.602,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 8.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost D_service (5 historical appearances) to 10.5 expected mins (appearance prob 0.60); FBref playing time empirical prior: 2.0 sub appearances, 8.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": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 25,
                "total_pass": 40,
                "accurate_pass": 32,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 21.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.1948,
                    "rating": null
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.1656,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 9.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 5.8
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 0.8532,
                  "defensive_actions": 1.4156,
                  "wonTackle": 0.728,
                  "totalTackle_p90": 1.6467,
                  "totalClearance_p90": 1.9786,
                  "aerialWon": 0.2696
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.5758006572723389,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1558
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0657
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0182
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0169
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0144
                        }
                      ],
                      "others": -0.0854,
                      "total": 0.5758,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.189337
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.092029
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.027051
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.025856
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.021981
                        }
                      ],
                      "others_margin": -0.13807
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.9956567287445068,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.1191
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0794
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0722
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0545
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0412
                        }
                      ],
                      "others": -0.128,
                      "total": 0.9957,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.093708
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.063459
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.057517
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.045692
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035975
                        }
                      ],
                      "others_margin": -0.121084
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.5971514582633972,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1536
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0282
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0251
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0135
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0121
                        }
                      ],
                      "others": 0.0041,
                      "total": 0.5972,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.205856
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.042834
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.039789
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.022078
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.020188
                        }
                      ],
                      "others_margin": 0.006773
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.5554876327514648,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.8158
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4287
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.131
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0886
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0615
                        }
                      ],
                      "others": -0.3065,
                      "total": 1.5555,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.27552
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.182355
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.063079
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.045058
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.032518
                        }
                      ],
                      "others_margin": -0.179803
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.3932178318500519,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.5454
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1724
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0505
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0217
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0193
                        }
                      ],
                      "others": -0.0671,
                      "total": 0.3932,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.561324
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.271841
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.096054
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.044188
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.041139
                        }
                      ],
                      "others_margin": -0.157564
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.23353803157806396,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0694
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.055
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0423
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0416
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0226
                        }
                      ],
                      "others": -0.0116,
                      "total": 0.2335,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": -0.069383
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.055013
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.042262
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.041629
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.022595
                        }
                      ],
                      "others_margin": -0.011624
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.574203968048096,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0461
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0157
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0149
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0139
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0131
                        }
                      ],
                      "others": -0.0799,
                      "total": 6.5742,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.046141
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.015739
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.014944
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.01387
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.013087
                        }
                      ],
                      "others_margin": -0.079802
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 25,
                "total_pass": 39,
                "accurate_pass": 31,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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
              },
              "params": {
                "market_value_eur": 1500000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0043)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 25,
                "total_pass": 39,
                "accurate_pass": 31,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": -11.25
              },
              "params": {
                "blend_weight": 0.0043,
                "history_matches": 5,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Getafe"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 10.5 expected minutes (appearance prob 0.60)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51
              },
              "params": {
                "expected_minutes": 10.51,
                "appearance_probability": 0.602
              }
            },
            {
              "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.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51
              },
              "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.602
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 17 by projected rating, fifa_overall 74.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3818,
                "fifa_rank": 2917.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0016,
                "finishing_factor": 1.0,
                "appearance_weight": 0.602,
                "weight_rank": 14,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.001,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0025,
                "creation_factor": 1.0,
                "appearance_weight": 0.602,
                "weight_rank": 14,
                "eligible_players": 14
              }
            }
          ]
        },
        "Nemanja Gudelj": {
          "player_id": 68332,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 8,
          "height": 187,
          "market_value": 1900000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0104,
            "assist_rate": 0.0172,
            "assists": 0,
            "expected_goals": 0.013,
            "goal_rate": 0.0176,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7299,
            "minutes": 18,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 6,
            "possession_lost": 1.2262,
            "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,
            "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": 5.6,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.692,
            "bench_expected_minutes": 18.14,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0089,
            "projected_assists": 0,
            "assist_probability": 0.0072,
            "finishing_factor": 0.916,
            "creation_factor": 1.0735,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0737,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 3,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0735,
                "expected_assists": 0.0006,
                "total_shots": 2,
                "total_pass": 12,
                "accurate_pass": 7,
                "tackles": 1,
                "interceptions": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0098,
                "expected_assists": 0.1573,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 18,
                "accurate_pass": 15,
                "key_pass": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0218,
                "expected_assists": 0.0078,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 30,
                "accurate_pass": 17,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 14,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0213,
                "expected_assists": 0.0144,
                "total_shots": 1,
                "total_pass": 12,
                "accurate_pass": 12,
                "clearances": 2
              },
              "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": 1778,
            "combined_rank_score": 964.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1231.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7299,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nemanja Gudelj",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jake Grech",
                  "ranking": 1773
                },
                {
                  "player_name": "Domantas Antanavičius",
                  "ranking": 1774
                },
                {
                  "player_name": "Emil Tsenov",
                  "ranking": 1775
                },
                {
                  "player_name": "Maksim Myakish",
                  "ranking": 1776
                },
                {
                  "player_name": "Jun'ai Byfield",
                  "ranking": 1777
                }
              ],
              "lower": [
                {
                  "player_name": "Jon Guridi",
                  "ranking": 1779
                },
                {
                  "player_name": "Pedro Felipe",
                  "ranking": 1780
                },
                {
                  "player_name": "Nico Guillén",
                  "ranking": 1781
                },
                {
                  "player_name": "Gabriel Pires",
                  "ranking": 1782
                },
                {
                  "player_name": "Yuri",
                  "ranking": 1783
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.564,
          "history_matches": 5,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.564,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.14,
            "bench_appearance_prob": 0.692,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "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 (5 historical appearances) to 18.1 expected mins (appearance prob 0.69); 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 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0638,
                "assist_rate": 0.0873,
                "assists": 0,
                "expected_goals": 0.1206,
                "goal_rate": 0.0896,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7299,
                "minutes": 75,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 29,
                "possession_lost": 6.2,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 14.0,
                    "is_starting": false,
                    "weight": 0.1408,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.9596,
                  "expectedAssists": 0.054,
                  "creative_index": 0.2182,
                  "creative_efficiency": 0.0505,
                  "shotValueNormalized": -0.0332,
                  "dribbleValueNormalized": -0.0041
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6191627383232117,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.115
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0975
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0361
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0221
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0196
                        }
                      ],
                      "others": -0.0894,
                      "total": 0.6192,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.132483
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.128036
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.049345
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.029966
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.027338
                        }
                      ],
                      "others_margin": -0.134762
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06380373239517212,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": -0.005
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0045
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0041
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0029
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0045,
                      "total": 0.0638,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": -0.059279
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.055678
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.054034
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.040763
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.033876
                        }
                      ],
                      "others_margin": -0.069123
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08729065954685211,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0125
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0054
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0022
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0021
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0014
                        }
                      ],
                      "others": -0.0034,
                      "total": 0.0873,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.136697
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.056812
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.024066
                        },
                        {
                          "name": "touches",
                          "margin": 0.023591
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.015393
                        }
                      ],
                      "others_margin": -0.039087
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.12060797959566116,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0451
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0102
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0072
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0064
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0062
                        }
                      ],
                      "others": 0.0003,
                      "total": 0.1206,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.28375
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.077152
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.058302
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.052234
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.050293
                        }
                      ],
                      "others_margin": 0.002362
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.08955459296703339,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.031
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0167
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0064
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0046
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.004
                        }
                      ],
                      "others": 0.0044,
                      "total": 0.0896,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.234901
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.153884
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.065478
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.050106
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.045994
                        }
                      ],
                      "others_margin": 0.048625
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.30647459626197815,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0224
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0215
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0122
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0112
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.01
                        }
                      ],
                      "others": 0.0016,
                      "total": 0.3065,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.06438
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.061523
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.036746
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.034925
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.032412
                        }
                      ],
                      "others_margin": 0.005001
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8442745962619781,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0804
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.036
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0335
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0306
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0249
                        }
                      ],
                      "others": 0.0116,
                      "total": 0.8443,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.080393
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.035958
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.033536
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.030649
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.024872
                        }
                      ],
                      "others_margin": 0.011604
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.729918003082275,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.052
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0158
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0117
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0111
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0108
                        }
                      ],
                      "others": -0.0601,
                      "total": 6.7299,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.052019
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.015781
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.011718
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.011061
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.010792
                        }
                      ],
                      "others_margin": -0.060027
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0626,
                "assist_rate": 0.0857,
                "assists": 0,
                "expected_goals": 0.1183,
                "goal_rate": 0.0879,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7299,
                "minutes": 75,
                "total_pass": 19,
                "accurate_pass": 15,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 28,
                "possession_lost": 6.0836,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 1900000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0043)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0626,
                "assist_rate": 0.0853,
                "assists": 0,
                "expected_goals": 0.1183,
                "goal_rate": 0.0875,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7299,
                "minutes": 75,
                "total_pass": 19,
                "accurate_pass": 15,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 28,
                "possession_lost": 6.0836,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0043,
                "history_matches": 5,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.8284,
                  "after": 0.8508
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0216
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.1 expected minutes (appearance prob 0.69)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0126,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.0238,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14
              },
              "params": {
                "expected_minutes": 18.14,
                "appearance_probability": 0.692
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0126,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.0238,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14
              },
              "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.692
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0238,
                  "after": 0.013
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 9 by projected rating, fifa_overall 78.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1778,
                "fifa_rank": 1231.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0089,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0089,
                "scorer_weight": 0.0082,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0136,
                "finishing_factor": 0.916,
                "appearance_weight": 0.692,
                "weight_rank": 10,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0089,
                "projected_assists": 0,
                "assist_probability": 0.0072,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0072,
                "provider_weight": 0.0077,
                "squad_weight_total": 0.4059,
                "weight_share": 0.019,
                "creation_factor": 1.0735,
                "appearance_weight": 0.692,
                "weight_rank": 11,
                "eligible_players": 14
              }
            }
          ]
        },
        "Oscar Lopez": {
          "player_id": 1994823,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 30,
          "height": 180,
          "market_value": 220000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.006,
            "assist_rate": 0.0116,
            "assists": 0,
            "expected_goals": 0.0277,
            "goal_rate": 0.0152,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.6954,
            "minutes": 22,
            "total_pass": 11,
            "accurate_pass": 9,
            "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": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 0,
            "possession_lost": 0.0,
            "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,
            "blocks": 0,
            "big_chances_created": 0,
            "big_chances_missed": 0,
            "xgot": 0.0,
            "ball_carries": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.499,
            "bench_expected_minutes": 21.97,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "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": 84.0
          },
          "latest_10_games": [
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 9,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0011,
                "total_shots": 0,
                "total_pass": 6,
                "accurate_pass": 4,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 3
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0
              },
              "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": 474,
            "combined_rank_score": 239.0,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 196.0,
            "fifa_overall": 84.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 14,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.6954,
            "source_file": "data/player_rankings.csv",
            "player_name": "Oscar Lopez",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Anthony Caceres",
                  "ranking": 469
                },
                {
                  "player_name": "James Garner",
                  "ranking": 470
                },
                {
                  "player_name": "Marcus Rashford",
                  "ranking": 471
                },
                {
                  "player_name": "João Cancelo",
                  "ranking": 472
                },
                {
                  "player_name": "Oh-kyu Kim",
                  "ranking": 473
                }
              ],
              "lower": [
                {
                  "player_name": "Eberechi Eze",
                  "ranking": 475
                },
                {
                  "player_name": "Hugo Ekitiké",
                  "ranking": 476
                },
                {
                  "player_name": "Manuel Ángel Castillo",
                  "ranking": 477
                },
                {
                  "player_name": "Willi Orbán",
                  "ranking": 478
                },
                {
                  "player_name": "Kuvondik Ruziev",
                  "ranking": 479
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.375,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 2,
            "data_confidence": 0.375,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 21.97222218756125,
            "bench_appearance_prob": 0.4987373721618749,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 0.0,
              "starts": 0.0,
              "sub_appearances": 0.0,
              "prior_reliability": 0.0
            },
            "rationale": "Bench projection scaled from XGBoost M_service (2 historical appearances) to 22.0 expected mins (appearance prob 0.50); FBref playing time empirical prior: 0.0 sub appearances, 0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost M_service raw output over 8 target models",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.025,
                "assist_rate": 0.0483,
                "assists": 0,
                "expected_goals": 0.1156,
                "goal_rate": 0.0636,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6954,
                "minutes": 5,
                "total_pass": 45,
                "accurate_pass": 36,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 9.0,
                    "is_starting": true,
                    "weight": 0.5405,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": null
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.0,
                  "expectedAssists": 0.0006,
                  "creative_index": 0.0004,
                  "creative_efficiency": 0.0,
                  "shotValueNormalized": 0.0,
                  "dribbleValueNormalized": 0.0432
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.4776404798030853,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.171
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.1019
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0417
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0363
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0291
                        }
                      ],
                      "others": -0.0691,
                      "total": 0.4776,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.20403
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.144861
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": -0.065937
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.061183
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.051871
                        }
                      ],
                      "others_margin": -0.134867
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.024981165304780006,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0391
                        },
                        {
                          "name": "cross_creative_contribution",
                          "contribution": -0.0047
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.004
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0033
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0026
                        }
                      ],
                      "others": -0.0137,
                      "total": 0.025,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.593998
                        },
                        {
                          "name": "cross_creative_contribution",
                          "margin": -0.102237
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.096795
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.088627
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.069928
                        }
                      ],
                      "others_margin": -0.438711
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.04825615510344505,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": -0.0133
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0105
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0032
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0024
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0021
                        }
                      ],
                      "others": -0.0053,
                      "total": 0.0483,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": -0.169902
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.158294
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.053648
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.042744
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.037671
                        }
                      ],
                      "others_margin": -0.105531
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.1155676320195198,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.03
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0114
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0083
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0075
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.006
                        }
                      ],
                      "others": -0.0204,
                      "total": 0.1156,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.179595
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.077401
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.057285
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.051793
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.04289
                        }
                      ],
                      "others_margin": -0.163198
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.06358782947063446,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0351
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.022
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.007
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0049
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0045
                        }
                      ],
                      "others": -0.0108,
                      "total": 0.0636,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.270618
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.216935
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.080166
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.059871
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.058113
                        }
                      ],
                      "others_margin": -0.158464
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.13952136039733887,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.124
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0208
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0168
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.009
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0085
                        }
                      ],
                      "others": -0.0358,
                      "total": 0.1395,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.457856
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.102772
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.091205
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.052717
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.049948
                        }
                      ],
                      "others_margin": -0.228539
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.42492136039733885,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.3567
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0496
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0396
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0333
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0329
                        }
                      ],
                      "others": -0.1011,
                      "total": 0.4249,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.356666
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.049578
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.039604
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.033307
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.032892
                        }
                      ],
                      "others_margin": -0.101101
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.695403099060059,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.048
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0331
                        },
                        {
                          "name": "touches",
                          "contribution": -0.0291
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "contribution": 0.0252
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0121
                        }
                      ],
                      "others": -0.0673,
                      "total": 6.6954,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.048035
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.033096
                        },
                        {
                          "name": "touches",
                          "margin": -0.029069
                        },
                        {
                          "name": "defensiveValueNormalized",
                          "margin": 0.025172
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.012092
                        }
                      ],
                      "others_margin": -0.06723
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0245,
                "assist_rate": 0.0474,
                "assists": 0,
                "expected_goals": 0.1134,
                "goal_rate": 0.0624,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6954,
                "minutes": 5,
                "total_pass": 44,
                "accurate_pass": 35,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 220000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0000)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0245,
                "assist_rate": 0.0474,
                "assists": 0,
                "expected_goals": 0.1134,
                "goal_rate": 0.0624,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6954,
                "minutes": 5,
                "total_pass": 44,
                "accurate_pass": 35,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "blend_weight": 0.0,
                "history_matches": 2,
                "prior_reliability": 0.0,
                "competition": "La Liga",
                "squad": "Getafe"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 22.0 expected minutes (appearance prob 0.50)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.006,
                "assist_rate": 0.0116,
                "assists": 0,
                "expected_goals": 0.0277,
                "goal_rate": 0.0152,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6954,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 9,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "expected_minutes": 21.97,
                "appearance_probability": 0.499
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.006,
                "assist_rate": 0.0116,
                "assists": 0,
                "expected_goals": 0.0277,
                "goal_rate": 0.0152,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6954,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 9,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97
              },
              "params": {
                "stats_clamped": 0,
                "shot_identity_applied": false
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 14 by projected rating, fifa_overall 84.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.006,
                "assist_rate": 0.0116,
                "assists": 0,
                "expected_goals": 0.0277,
                "goal_rate": 0.0152,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.6954,
                "minutes": 22,
                "total_pass": 11,
                "accurate_pass": 9,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.499,
                "bench_expected_minutes": 21.97,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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": 84.0
              },
              "params": {
                "match_squad_rank": 14,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 474,
                "fifa_rank": 196.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 84.0
              }
            }
          ]
        },
        "Borja Mayoral": {
          "player_id": 604954,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 182,
          "market_value": 6300000,
          "stats": {
            "expected_goals": 0.0133,
            "goal_rate": 0.0204,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0026,
            "key_pass": 0,
            "rating": 6.631,
            "minutes": 13,
            "total_pass": 0,
            "accurate_pass": 0,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 0,
            "possession_lost": 0.2892,
            "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,
            "assist_rate": 0.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": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 2.2,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.722,
            "bench_expected_minutes": 13.1,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0095,
            "projected_assists": 0,
            "assist_probability": 0.0019,
            "finishing_factor": 0.9462,
            "creation_factor": 0.9416,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "ball_recovery": 1
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "duels_won": 1
              },
              "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": 3389,
            "combined_rank_score": 1361.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 765.0,
            "sofascore_rating": 6.65,
            "sofascore_appearances": 16.0,
            "fifa_rank": 1957.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.631,
            "source_file": "data/player_rankings.csv",
            "player_name": "Borja Mayoral",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Denis Vavro",
                  "ranking": 3384
                },
                {
                  "player_name": "Phillipp Mwene",
                  "ranking": 3385
                },
                {
                  "player_name": "Jesús Rodriguez",
                  "ranking": 3386
                },
                {
                  "player_name": "Ismael Koné",
                  "ranking": 3387
                },
                {
                  "player_name": "Tomáš Holeš",
                  "ranking": 3388
                }
              ],
              "lower": [
                {
                  "player_name": "Álex Moreno",
                  "ranking": 3390
                },
                {
                  "player_name": "Rico Henry",
                  "ranking": 3391
                },
                {
                  "player_name": "Leo Østigård",
                  "ranking": 3392
                },
                {
                  "player_name": "Guido Carrillo",
                  "ranking": 3393
                },
                {
                  "player_name": "Juanlu Sánchez",
                  "ranking": 3394
                }
              ]
            }
          },
          "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"
            ],
            "bench_expected_minutes": 13.1,
            "bench_appearance_prob": 0.722,
            "market_value_adjustment": 0.9934,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 3.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0067
            },
            "rationale": "Bench projection scaled from XGBoost F_service (2 historical appearances) to 13.1 expected mins (appearance prob 0.72); FBref playing time empirical prior: 2.0 sub appearances, 3.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1685,
                "goal_rate": 0.1416,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0213,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 2.0,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": null
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.0,
                  "minutesPlayed": 5.3243,
                  "shotValueNormalized": 0.0,
                  "accuratePass": 0.0,
                  "expectedAssists": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.16848814487457275,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0773
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0276
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0243
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0206
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0149
                        }
                      ],
                      "others": -0.0294,
                      "total": 0.1685,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.239826
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.101727
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.09915
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.092625
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.0727
                        }
                      ],
                      "others_margin": -0.160397
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.14156857132911682,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.042
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0286
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0227
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.01
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0073
                        }
                      ],
                      "others": -0.0344,
                      "total": 0.1416,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.158353
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.124515
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.110864
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.053059
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.040738
                        }
                      ],
                      "others_margin": -0.217848
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.27334633469581604,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1485
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0952
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0557
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0366
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0158
                        }
                      ],
                      "others": -0.0751,
                      "total": 0.2733,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.29072
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.243702
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.149528
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.095817
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.044361
                        }
                      ],
                      "others_margin": -0.242283
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.650284469127655,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2917
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1304
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0871
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.069
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0556
                        }
                      ],
                      "others": -0.2623,
                      "total": 0.6503,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.291736
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.130424
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.087132
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.068977
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.055622
                        }
                      ],
                      "others_margin": -0.262263
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.021342355757951736,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0239
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0056
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0039
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0022
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0019
                        }
                      ],
                      "others": -0.009,
                      "total": 0.0213,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.506666
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.169195
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.120191
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.067225
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.062379
                        }
                      ],
                      "others_margin": -0.349164
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.36861535906791687,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2073
                        },
                        {
                          "name": "touches",
                          "contribution": 0.045
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0452
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.041
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0342
                        }
                      ],
                      "others": -0.1173,
                      "total": 0.3686,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.364889
                        },
                        {
                          "name": "touches",
                          "margin": 0.091344
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.083907
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.075791
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.06807
                        }
                      ],
                      "others_margin": -0.276219
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.630962371826172,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0424
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0268
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0268
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0127
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0656,
                      "total": 6.631,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.04243
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.026805
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.026777
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.012715
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.009693
                        }
                      ],
                      "others_margin": -0.065579
                    }
                  }
                ],
                "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.9934, quality 0.478)",
              "stats": {
                "expected_goals": 0.1674,
                "goal_rate": 0.1406,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0212,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.9869,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 6300000,
                "quality_factor": 0.4781,
                "boost_factor": 0.9934
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0031)",
              "stats": {
                "expected_goals": 0.1674,
                "goal_rate": 0.1402,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0212,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.9869,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0031,
                "history_matches": 2,
                "prior_reliability": 0.0067,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0311
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0311
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.1 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.0244,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0031,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1
              },
              "params": {
                "expected_minutes": 13.1,
                "appearance_probability": 0.722
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0244,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0031,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.722
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0244,
                  "after": 0.0133
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 16 by projected rating, fifa_overall 76.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3389,
                "fifa_rank": 1957.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0095,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0095,
                "scorer_weight": 0.0091,
                "squad_weight_total": 0.6066,
                "weight_share": 0.015,
                "finishing_factor": 0.9462,
                "appearance_weight": 0.722,
                "weight_rank": 9,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0095,
                "projected_assists": 0,
                "assist_probability": 0.0019,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0019,
                "provider_weight": 0.0018,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0044,
                "creation_factor": 0.9416,
                "appearance_weight": 0.722,
                "weight_rank": 12,
                "eligible_players": 14
              }
            }
          ]
        },
        "Ivan Azón": {
          "player_id": 1000696,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 90,
          "height": 181,
          "market_value": 5200000,
          "stats": {
            "expected_goals": 0.0466,
            "goal_rate": 0.0976,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0139,
            "key_pass": 0,
            "rating": 6.8025,
            "minutes": 25,
            "total_pass": 3,
            "accurate_pass": 2,
            "duels_won": 1,
            "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": 7,
            "possession_lost": 2.2338,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0698,
            "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": 2,
            "total_progression": 6,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.564,
            "bench_expected_minutes": 25.4,
            "projected_substitution_order": 4,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0257,
            "projected_assists": 0,
            "assist_probability": 0.0078,
            "finishing_factor": 1.0901,
            "creation_factor": 1.25,
            "fifa_overall": 70.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3988,
                "expected_assists": 0.0247,
                "total_shots": 5,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.056,
                "expected_assists": 0.0821,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 19,
                "accurate_pass": 14,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 2
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 76,
                "rating": 6.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0761,
                "expected_assists": 0.2082,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 11,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 17,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "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": 4905,
            "combined_rank_score": 2997.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 5809.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8025,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ivan Azón",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Gabri Martínez",
                  "ranking": 4900
                },
                {
                  "player_name": "Gabriel Silva",
                  "ranking": 4901
                },
                {
                  "player_name": "Óscar Aranda",
                  "ranking": 4902
                },
                {
                  "player_name": "Ryunosuke Sato",
                  "ranking": 4903
                },
                {
                  "player_name": "Santi García",
                  "ranking": 4904
                }
              ],
              "lower": [
                {
                  "player_name": "Diogo Travassos",
                  "ranking": 4906
                },
                {
                  "player_name": "Miha Zajc",
                  "ranking": 4907
                },
                {
                  "player_name": "Rokas Pukštas",
                  "ranking": 4908
                },
                {
                  "player_name": "Alex Dobre",
                  "ranking": 4909
                },
                {
                  "player_name": "David Moses",
                  "ranking": 4910
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "history_matches": 4,
          "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": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.399959715539993,
            "bench_appearance_prob": 0.5636345325245452,
            "market_value_adjustment": 0.9894,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 25.4 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.3058,
                "goal_rate": 0.3497,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0606,
                "key_pass": 1,
                "rating": 6.8025,
                "minutes": 68,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.25,
                "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": 6,
                "total_progression": 22,
                "progressive_carries": 3,
                "shots_off_target": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 1.2082,
                  "totalShots": 2.3293,
                  "minutesPlayed": 72.4435,
                  "shotValueNormalized": 0.0706,
                  "accuratePass": 9.2454,
                  "expectedAssists": 0.0769
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.3057843744754791,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0607
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0237
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0252
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.013
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0105
                        }
                      ],
                      "others": -0.0215,
                      "total": 0.3058,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.183324
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.075482
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.074687
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.037769
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.031536
                        }
                      ],
                      "others_margin": -0.067951
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.3497123122215271,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0311
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.025
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0272
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0187
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0184
                        }
                      ],
                      "others": 0.0049,
                      "total": 0.3497,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.114762
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.093163
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.092569
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.058988
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.054986
                        }
                      ],
                      "others_margin": 0.014007
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.536279022693634,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0693
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0546
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0235
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0232
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0214
                        }
                      ],
                      "others": -0.0161,
                      "total": 0.5363,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.12531
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.099916
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.041748
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.041252
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.038052
                        }
                      ],
                      "others_margin": -0.029498
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.110979022693634,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2606
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.245
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.065
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0626
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0524
                        }
                      ],
                      "others": 0.2201,
                      "total": 2.1109,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.260551
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.244956
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.064965
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.062568
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.052379
                        }
                      ],
                      "others_margin": 0.220212
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.060582783073186874,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0287
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.0087
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0037
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.003
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0099,
                      "total": 0.0606,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.390943
                        },
                        {
                          "name": "shot_waste_rate",
                          "margin": -0.102898
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.047099
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.039417
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.038309
                        }
                      ],
                      "others_margin": -0.154342
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5451682209968567,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0993
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0241
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0167
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0166
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0139
                        }
                      ],
                      "others": 0.0044,
                      "total": 0.5452,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.158223
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.042436
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.030617
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.030425
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.025433
                        }
                      ],
                      "others_margin": 0.007906
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.802545070648193,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0463
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0408
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0224
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0102
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0095
                        }
                      ],
                      "others": -0.0097,
                      "total": 6.8025,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.046328
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.040757
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.022389
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010209
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.009502
                        }
                      ],
                      "others_margin": -0.009524
                    }
                  }
                ],
                "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.9894, quality 0.465)",
              "stats": {
                "expected_goals": 0.3025,
                "goal_rate": 0.346,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0599,
                "key_pass": 1,
                "rating": 6.8025,
                "minutes": 68,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.9151,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.2473,
                "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": 6,
                "total_progression": 22,
                "progressive_carries": 3,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 5200000,
                "quality_factor": 0.4646,
                "boost_factor": 0.9894
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.4 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0854,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0169,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4
              },
              "params": {
                "expected_minutes": 25.4,
                "appearance_probability": 0.564
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0854,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0169,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4
              },
              "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.564
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0854,
                  "after": 0.0466
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 4 by projected rating, fifa_overall 70.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4905,
                "fifa_rank": 5809.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 70.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25,
                "fifa_overall": 70.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0257,
                "scorer_weight": 0.0287,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0472,
                "finishing_factor": 1.0901,
                "appearance_weight": 0.564,
                "weight_rank": 8,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0078,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25,
                "fifa_overall": 70.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0078,
                "provider_weight": 0.0098,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0241,
                "creation_factor": 1.25,
                "appearance_weight": 0.564,
                "weight_rank": 10,
                "eligible_players": 14
              }
            }
          ]
        }
      },
      "substitutes": {
        "Borja Mayoral": {
          "player_id": 604954,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 9,
          "height": 182,
          "market_value": 6300000,
          "stats": {
            "expected_goals": 0.0133,
            "goal_rate": 0.0204,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "expected_assists": 0.0026,
            "key_pass": 0,
            "rating": 6.631,
            "minutes": 13,
            "total_pass": 0,
            "accurate_pass": 0,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 0,
            "possession_lost": 0.2892,
            "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,
            "assist_rate": 0.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": 0,
            "total_progression": 0,
            "progressive_carries": 0,
            "shots_off_target": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 2.2,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.722,
            "bench_expected_minutes": 13.1,
            "projected_substitution_order": 1,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0095,
            "projected_assists": 0,
            "assist_probability": 0.0019,
            "finishing_factor": 0.9462,
            "creation_factor": 0.9416,
            "fifa_overall": 76.0
          },
          "latest_10_games": [
            {
              "match_id": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 9,
                "rating": 6.4,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "ball_recovery": 1
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0,
                "total_pass": 1,
                "duels_won": 1
              },
              "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": 3389,
            "combined_rank_score": 1361.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 765.0,
            "sofascore_rating": 6.65,
            "sofascore_appearances": 16.0,
            "fifa_rank": 1957.0,
            "fifa_overall": 76.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 16,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.631,
            "source_file": "data/player_rankings.csv",
            "player_name": "Borja Mayoral",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Denis Vavro",
                  "ranking": 3384
                },
                {
                  "player_name": "Phillipp Mwene",
                  "ranking": 3385
                },
                {
                  "player_name": "Jesús Rodriguez",
                  "ranking": 3386
                },
                {
                  "player_name": "Ismael Koné",
                  "ranking": 3387
                },
                {
                  "player_name": "Tomáš Holeš",
                  "ranking": 3388
                }
              ],
              "lower": [
                {
                  "player_name": "Álex Moreno",
                  "ranking": 3390
                },
                {
                  "player_name": "Rico Henry",
                  "ranking": 3391
                },
                {
                  "player_name": "Leo Østigård",
                  "ranking": 3392
                },
                {
                  "player_name": "Guido Carrillo",
                  "ranking": 3393
                },
                {
                  "player_name": "Juanlu Sánchez",
                  "ranking": 3394
                }
              ]
            }
          },
          "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"
            ],
            "bench_expected_minutes": 13.1,
            "bench_appearance_prob": 0.722,
            "market_value_adjustment": 0.9934,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 3.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0067
            },
            "rationale": "Bench projection scaled from XGBoost F_service (2 historical appearances) to 13.1 expected mins (appearance prob 0.72); FBref playing time empirical prior: 2.0 sub appearances, 3.0 mins/sub."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.1685,
                "goal_rate": 0.1416,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0213,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 2.0,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 9.0,
                    "is_starting": false,
                    "weight": 0.5405,
                    "rating": 6.4
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.4595,
                    "rating": null
                  }
                ],
                "feature_row": {
                  "history_matches": 2.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 0.0,
                  "totalShots": 0.0,
                  "minutesPlayed": 5.3243,
                  "shotValueNormalized": 0.0,
                  "accuratePass": 0.0,
                  "expectedAssists": 0.0
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.16848814487457275,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0773
                        },
                        {
                          "name": "touches_p90",
                          "contribution": -0.0276
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0243
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0206
                        },
                        {
                          "name": "topSpeed",
                          "contribution": -0.0149
                        }
                      ],
                      "others": -0.0294,
                      "total": 0.1685,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.239826
                        },
                        {
                          "name": "touches_p90",
                          "margin": -0.101727
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.09915
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.092625
                        },
                        {
                          "name": "topSpeed",
                          "margin": -0.0727
                        }
                      ],
                      "others_margin": -0.160397
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.14156857132911682,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.042
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0286
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0227
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.01
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0073
                        }
                      ],
                      "others": -0.0344,
                      "total": 0.1416,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.158353
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.124515
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.110864
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.053059
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.040738
                        }
                      ],
                      "others_margin": -0.217848
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.27334633469581604,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.1485
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0952
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0557
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0366
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "contribution": -0.0158
                        }
                      ],
                      "others": -0.0751,
                      "total": 0.2733,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.29072
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.243702
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.149528
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.095817
                        },
                        {
                          "name": "accurateOppositionHalfPasses",
                          "margin": -0.044361
                        }
                      ],
                      "others_margin": -0.242283
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.650284469127655,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.2917
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.1304
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0871
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.069
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0556
                        }
                      ],
                      "others": -0.2623,
                      "total": 0.6503,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.291736
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.130424
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.087132
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.068977
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.055622
                        }
                      ],
                      "others_margin": -0.262263
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.021342355757951736,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0239
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0056
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": 0.0039
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0022
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0019
                        }
                      ],
                      "others": -0.009,
                      "total": 0.0213,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": -0.506666
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.169195
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": 0.120191
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.067225
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.062379
                        }
                      ],
                      "others_margin": -0.349164
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.36861535906791687,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "keyPass",
                          "contribution": -0.2073
                        },
                        {
                          "name": "touches",
                          "contribution": 0.045
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0452
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.041
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0342
                        }
                      ],
                      "others": -0.1173,
                      "total": 0.3686,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "keyPass",
                          "margin": -0.364889
                        },
                        {
                          "name": "touches",
                          "margin": 0.091344
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.083907
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.075791
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.06807
                        }
                      ],
                      "others_margin": -0.276219
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.630962371826172,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0424
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0268
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0268
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0127
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0097
                        }
                      ],
                      "others": -0.0656,
                      "total": 6.631,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.04243
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.026805
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.026777
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.012715
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.009693
                        }
                      ],
                      "others_margin": -0.065579
                    }
                  }
                ],
                "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.9934, quality 0.478)",
              "stats": {
                "expected_goals": 0.1674,
                "goal_rate": 0.1406,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0212,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.9869,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0
              },
              "params": {
                "market_value_eur": 6300000,
                "quality_factor": 0.4781,
                "boost_factor": 0.9934
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0031)",
              "stats": {
                "expected_goals": 0.1674,
                "goal_rate": 0.1402,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0212,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 5,
                "total_pass": 1,
                "accurate_pass": 0,
                "duels_won": 3,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 1,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 2,
                "possession_lost": 1.9869,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0031,
                "history_matches": 2,
                "prior_reliability": 0.0067,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "totalCross",
                  "before": 0.0,
                  "after": 0.0311
                },
                {
                  "stat": "wasFouled",
                  "before": 0.0,
                  "after": 0.0311
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 13.1 expected minutes (appearance prob 0.72)",
              "stats": {
                "expected_goals": 0.0244,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0031,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1
              },
              "params": {
                "expected_minutes": 13.1,
                "appearance_probability": 0.722
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0244,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0031,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.722
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0244,
                  "after": 0.0133
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 16 by projected rating, fifa_overall 76.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416,
                "fifa_overall": 76.0
              },
              "params": {
                "match_squad_rank": 16,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3389,
                "fifa_rank": 1957.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 76.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0095,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0095,
                "scorer_weight": 0.0091,
                "squad_weight_total": 0.6066,
                "weight_share": 0.015,
                "finishing_factor": 0.9462,
                "appearance_weight": 0.722,
                "weight_rank": 9,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0133,
                "goal_rate": 0.0204,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "expected_assists": 0.0026,
                "key_pass": 0,
                "rating": 6.631,
                "minutes": 13,
                "total_pass": 0,
                "accurate_pass": 0,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.2892,
                "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,
                "assist_rate": 0.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": 0,
                "total_progression": 0,
                "progressive_carries": 0,
                "shots_off_target": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 2.2,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.722,
                "bench_expected_minutes": 13.1,
                "projected_substitution_order": 1,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0095,
                "projected_assists": 0,
                "assist_probability": 0.0019,
                "finishing_factor": 0.9462,
                "creation_factor": 0.9416,
                "fifa_overall": 76.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0019,
                "provider_weight": 0.0018,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0044,
                "creation_factor": 0.9416,
                "appearance_weight": 0.722,
                "weight_rank": 12,
                "eligible_players": 14
              }
            }
          ]
        },
        "Nemanja Gudelj": {
          "player_id": 68332,
          "position": "M",
          "position_depth": "M_BENCH",
          "is_starter": false,
          "shirt_number": 8,
          "height": 187,
          "market_value": 1900000,
          "stats": {
            "key_pass": 0,
            "expected_assists": 0.0104,
            "assist_rate": 0.0172,
            "assists": 0,
            "expected_goals": 0.013,
            "goal_rate": 0.0176,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 0,
            "rating": 6.7299,
            "minutes": 18,
            "total_pass": 4,
            "accurate_pass": 3,
            "duels_won": 1,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 2,
            "accurate_own_half_passes": 2,
            "total_opp_half_passes": 2,
            "accurate_opp_half_passes": 1,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 6,
            "possession_lost": 1.2262,
            "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,
            "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": 5.6,
            "pointsPerMatch": 0.0,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.692,
            "bench_expected_minutes": 18.14,
            "projected_substitution_order": 2,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0089,
            "projected_assists": 0,
            "assist_probability": 0.0072,
            "finishing_factor": 0.916,
            "creation_factor": 1.0735,
            "fifa_overall": 78.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 90,
                "rating": 7.1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0737,
                "total_shots": 0,
                "total_pass": 27,
                "accurate_pass": 23,
                "key_pass": 1,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 1,
                "clearances": 4,
                "aerial_won": 3,
                "duels_won": 7,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 5.9,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0735,
                "expected_assists": 0.0006,
                "total_shots": 2,
                "total_pass": 12,
                "accurate_pass": 7,
                "tackles": 1,
                "interceptions": 3,
                "clearances": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 2
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 90,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0098,
                "expected_assists": 0.1573,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 18,
                "accurate_pass": 15,
                "key_pass": 1,
                "clearances": 3,
                "aerial_won": 2,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 90,
                "rating": 6.3,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0218,
                "expected_assists": 0.0078,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 30,
                "accurate_pass": 17,
                "tackles": 1,
                "tackles_won": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 2,
                "duels_won": 3,
                "ball_recovery": 1
              },
              "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": 16416314.0,
              "match_date": "2026-08-31",
              "home_team": "Osasuna",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Osasuna",
              "stats": {
                "minutes": 14,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0213,
                "expected_assists": 0.0144,
                "total_shots": 1,
                "total_pass": 12,
                "accurate_pass": 12,
                "clearances": 2
              },
              "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": 1778,
            "combined_rank_score": 964.5,
            "ranking_source": "sofascore_plus_fifa_csv_filled",
            "ranking_status": "combined",
            "sofascore_rank": 698.0,
            "sofascore_rating": 6.7,
            "sofascore_appearances": 1.0,
            "fifa_rank": 1231.0,
            "fifa_overall": 78.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 9,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.7299,
            "source_file": "data/player_rankings.csv",
            "player_name": "Nemanja Gudelj",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Jake Grech",
                  "ranking": 1773
                },
                {
                  "player_name": "Domantas Antanavičius",
                  "ranking": 1774
                },
                {
                  "player_name": "Emil Tsenov",
                  "ranking": 1775
                },
                {
                  "player_name": "Maksim Myakish",
                  "ranking": 1776
                },
                {
                  "player_name": "Jun'ai Byfield",
                  "ranking": 1777
                }
              ],
              "lower": [
                {
                  "player_name": "Jon Guridi",
                  "ranking": 1779
                },
                {
                  "player_name": "Pedro Felipe",
                  "ranking": 1780
                },
                {
                  "player_name": "Nico Guillén",
                  "ranking": 1781
                },
                {
                  "player_name": "Gabriel Pires",
                  "ranking": 1782
                },
                {
                  "player_name": "Yuri",
                  "ranking": 1783
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.564,
          "history_matches": 5,
          "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",
              "goals",
              "onTargetScoringAttempt",
              "totalShots",
              "rating"
            ],
            "history_matches": 5,
            "data_confidence": 0.564,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 18.14,
            "bench_appearance_prob": 0.692,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "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 (5 historical appearances) to 18.1 expected mins (appearance prob 0.69); 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 8 target models",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0638,
                "assist_rate": 0.0873,
                "assists": 0,
                "expected_goals": 0.1206,
                "goal_rate": 0.0896,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7299,
                "minutes": 75,
                "total_pass": 20,
                "accurate_pass": 15,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 8,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 29,
                "possession_lost": 6.2,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "trace": {
                "model": {
                  "position_service": "M",
                  "schema_version": 6,
                  "trained_at": "2026-09-29T10:02:07.046807+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 550,
                    "rows": 13779
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 7.1
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 5.9
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1948,
                    "rating": 6.5
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.1656,
                    "rating": 6.3
                  },
                  {
                    "match_date": "2026-08-31",
                    "opponent": "Osasuna",
                    "minutes": 14.0,
                    "is_starting": false,
                    "weight": 0.1408,
                    "rating": 6.7
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 0.0,
                  "totalShots": 0.9596,
                  "expectedAssists": 0.054,
                  "creative_index": 0.2182,
                  "creative_efficiency": 0.0505,
                  "shotValueNormalized": -0.0332,
                  "dribbleValueNormalized": -0.0041
                },
                "per_target": [
                  {
                    "target": "keyPass",
                    "predicted": 0.6191627383232117,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "creative_index",
                        "importance": 0.12
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0959
                      },
                      {
                        "name": "keyPass_p90",
                        "importance": 0.0798
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0429
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0425
                      }
                    ],
                    "decomposition": {
                      "base": 0.9267,
                      "items": [
                        {
                          "name": "creative_index",
                          "contribution": -0.115
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0975
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0361
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0221
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": -0.0196
                        }
                      ],
                      "others": -0.0894,
                      "total": 0.6192,
                      "log_link": true,
                      "margin_base": -0.076148,
                      "item_margins": [
                        {
                          "name": "creative_index",
                          "margin": -0.132483
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.128036
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.049345
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.029966
                        },
                        {
                          "name": "expectedAssists",
                          "margin": -0.027338
                        }
                      ],
                      "others_margin": -0.134762
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.06380373239517212,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.118
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0768
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0579
                      },
                      {
                        "name": "cross_creative_contribution",
                        "importance": 0.0397
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0318
                      }
                    ],
                    "decomposition": {
                      "base": 0.0872,
                      "items": [
                        {
                          "name": "totalCross",
                          "contribution": -0.005
                        },
                        {
                          "name": "creative_index",
                          "contribution": -0.0045
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0041
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0029
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0024
                        }
                      ],
                      "others": -0.0045,
                      "total": 0.0638,
                      "log_link": true,
                      "margin_base": -2.439192,
                      "item_margins": [
                        {
                          "name": "totalCross",
                          "margin": -0.059279
                        },
                        {
                          "name": "creative_index",
                          "margin": -0.055678
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.054034
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.040763
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.033876
                        }
                      ],
                      "others_margin": -0.069123
                    }
                  },
                  {
                    "target": "goalAssist",
                    "predicted": 0.08729065954685211,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.0669
                      },
                      {
                        "name": "creative_efficiency",
                        "importance": 0.0574
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0465
                      },
                      {
                        "name": "creative_index",
                        "importance": 0.0404
                      },
                      {
                        "name": "ballRecovery_p90",
                        "importance": 0.0277
                      }
                    ],
                    "decomposition": {
                      "base": 0.0851,
                      "items": [
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0125
                        },
                        {
                          "name": "keyPass",
                          "contribution": -0.0054
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0022
                        },
                        {
                          "name": "touches",
                          "contribution": 0.0021
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0014
                        }
                      ],
                      "others": -0.0034,
                      "total": 0.0873,
                      "log_link": true,
                      "margin_base": -2.463441,
                      "item_margins": [
                        {
                          "name": "creative_efficiency",
                          "margin": 0.136697
                        },
                        {
                          "name": "keyPass",
                          "margin": -0.056812
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.024066
                        },
                        {
                          "name": "touches",
                          "margin": 0.023591
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.015393
                        }
                      ],
                      "others_margin": -0.039087
                    }
                  },
                  {
                    "target": "expectedGoals",
                    "predicted": 0.12060797959566116,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.082
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0374
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0365
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.035
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0344
                      }
                    ],
                    "decomposition": {
                      "base": 0.1826,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": -0.0451
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0102
                        },
                        {
                          "name": "intensity_index",
                          "contribution": -0.0072
                        },
                        {
                          "name": "creative_efficiency",
                          "contribution": 0.0064
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0062
                        }
                      ],
                      "others": 0.0003,
                      "total": 0.1206,
                      "log_link": true,
                      "margin_base": -1.700309,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": -0.28375
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.077152
                        },
                        {
                          "name": "intensity_index",
                          "margin": -0.058302
                        },
                        {
                          "name": "creative_efficiency",
                          "margin": 0.052234
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.050293
                        }
                      ],
                      "others_margin": 0.002362
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.08955459296703339,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0879
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0676
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0367
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.031
                      },
                      {
                        "name": "intensity_index",
                        "importance": 0.0294
                      }
                    ],
                    "decomposition": {
                      "base": 0.1479,
                      "items": [
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.031
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0167
                        },
                        {
                          "name": "totalProgression",
                          "contribution": -0.0064
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0046
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.004
                        }
                      ],
                      "others": 0.0044,
                      "total": 0.0896,
                      "log_link": true,
                      "margin_base": -1.911166,
                      "item_margins": [
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.234901
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.153884
                        },
                        {
                          "name": "totalProgression",
                          "margin": -0.065478
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.050106
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.045994
                        }
                      ],
                      "others_margin": 0.048625
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.30647459626197815,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1114
                      },
                      {
                        "name": "numberOfSprints",
                        "importance": 0.0574
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0383
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0333
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.033
                      }
                    ],
                    "decomposition": {
                      "base": 0.3374,
                      "items": [
                        {
                          "name": "ballRecovery_p90",
                          "contribution": 0.0224
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": -0.0215
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.0122
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0112
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.01
                        }
                      ],
                      "others": 0.0016,
                      "total": 0.3065,
                      "log_link": true,
                      "margin_base": -1.086396,
                      "item_margins": [
                        {
                          "name": "ballRecovery_p90",
                          "margin": 0.06438
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": -0.061523
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.036746
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.034925
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.032412
                        }
                      ],
                      "others_margin": 0.005001
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.8442745962619781,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalShots",
                        "importance": 0.1236
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0751
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0663
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0364
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.0288
                      }
                    ],
                    "decomposition": {
                      "base": 1.0381,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0804
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "contribution": -0.036
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0335
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0306
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0249
                        }
                      ],
                      "others": 0.0116,
                      "total": 0.8443,
                      "log_link": false,
                      "margin_base": 1.038069,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.080393
                        },
                        {
                          "name": "dribbleValueNormalized",
                          "margin": -0.035958
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.033536
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.030649
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.024872
                        }
                      ],
                      "others_margin": 0.011604
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.729918003082275,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0666
                      },
                      {
                        "name": "expectedAssists",
                        "importance": 0.0489
                      },
                      {
                        "name": "touches",
                        "importance": 0.041
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0305
                      }
                    ],
                    "decomposition": {
                      "base": 6.8598,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.052
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0158
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0117
                        },
                        {
                          "name": "shotValueNormalized",
                          "contribution": -0.0111
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "contribution": -0.0108
                        }
                      ],
                      "others": -0.0601,
                      "total": 6.7299,
                      "log_link": false,
                      "margin_base": 6.859756,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.052019
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.015781
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.011718
                        },
                        {
                          "name": "shotValueNormalized",
                          "margin": -0.011061
                        },
                        {
                          "name": "ballCarriesCount_p90",
                          "margin": -0.010792
                        }
                      ],
                      "others_margin": -0.060027
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0626,
                "assist_rate": 0.0857,
                "assists": 0,
                "expected_goals": 0.1183,
                "goal_rate": 0.0879,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7299,
                "minutes": 75,
                "total_pass": 19,
                "accurate_pass": 15,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 28,
                "possession_lost": 6.0836,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 1
              },
              "params": {
                "market_value_eur": 1900000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0043)",
              "stats": {
                "key_pass": 1,
                "expected_assists": 0.0626,
                "assist_rate": 0.0853,
                "assists": 0,
                "expected_goals": 0.1183,
                "goal_rate": 0.0875,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "rating": 6.7299,
                "minutes": 75,
                "total_pass": 19,
                "accurate_pass": 15,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 8,
                "accurate_own_half_passes": 7,
                "total_opp_half_passes": 12,
                "accurate_opp_half_passes": 7,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 28,
                "possession_lost": 6.0836,
                "dispossessed": 0.0,
                "duels_lost": 3,
                "aerial_won": 0,
                "aerial_lost": 0,
                "interceptions": 0,
                "tackles_won": 0,
                "tackles": 0,
                "clearances": 2,
                "total_contest": 0,
                "won_contest": 0,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "blocks": 0,
                "big_chances_created": 0,
                "big_chances_missed": 0,
                "xgot": 0.0,
                "ball_carries": 5,
                "total_progression": 6,
                "progressive_carries": 0,
                "shots_off_target": 1,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "shotAccuracy": 0.0,
                "shotConversion": 0.0,
                "minutesPct": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0
              },
              "params": {
                "blend_weight": 0.0043,
                "history_matches": 5,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Getafe"
              },
              "changes": [
                {
                  "stat": "totalShots",
                  "before": 0.8284,
                  "after": 0.8508
                },
                {
                  "stat": "fouls",
                  "before": 0.0,
                  "after": 0.0216
                }
              ]
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 18.1 expected minutes (appearance prob 0.69)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0126,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.0238,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14
              },
              "params": {
                "expected_minutes": 18.14,
                "appearance_probability": 0.692
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0126,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.0238,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14
              },
              "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.692
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0238,
                  "after": 0.013
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 9 by projected rating, fifa_overall 78.0; not used by the projection)",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735,
                "fifa_overall": 78.0
              },
              "params": {
                "match_squad_rank": 9,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv_filled",
                "ranking_status": "combined",
                "global_player_rank": 1778,
                "fifa_rank": 1231.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 78.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0089,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0089,
                "scorer_weight": 0.0082,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0136,
                "finishing_factor": 0.916,
                "appearance_weight": 0.692,
                "weight_rank": 10,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "key_pass": 0,
                "expected_assists": 0.0104,
                "assist_rate": 0.0172,
                "assists": 0,
                "expected_goals": 0.013,
                "goal_rate": 0.0176,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 0,
                "rating": 6.7299,
                "minutes": 18,
                "total_pass": 4,
                "accurate_pass": 3,
                "duels_won": 1,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 2,
                "accurate_own_half_passes": 2,
                "total_opp_half_passes": 2,
                "accurate_opp_half_passes": 1,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 6,
                "possession_lost": 1.2262,
                "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,
                "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": 5.6,
                "pointsPerMatch": 0.0,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.692,
                "bench_expected_minutes": 18.14,
                "projected_substitution_order": 2,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0089,
                "projected_assists": 0,
                "assist_probability": 0.0072,
                "finishing_factor": 0.916,
                "creation_factor": 1.0735,
                "fifa_overall": 78.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0072,
                "provider_weight": 0.0077,
                "squad_weight_total": 0.4059,
                "weight_share": 0.019,
                "creation_factor": 1.0735,
                "appearance_weight": 0.692,
                "weight_rank": 11,
                "eligible_players": 14
              }
            }
          ]
        },
        "Sebastián Boselli": {
          "player_id": 1392092,
          "position": "D",
          "position_depth": "D_BENCH",
          "is_starter": false,
          "shirt_number": 15,
          "height": 183,
          "market_value": 1500000,
          "stats": {
            "interceptions": 0,
            "tackles": 0,
            "tackles_won": 0,
            "clearances": 0,
            "aerial_won": 0,
            "total_shots": 0,
            "rating": 6.5742,
            "minutes": 11,
            "total_pass": 5,
            "accurate_pass": 4,
            "duels_won": 0,
            "total_long_balls": 0,
            "accurate_long_balls": 0,
            "total_own_half_passes": 0,
            "accurate_own_half_passes": 0,
            "total_opp_half_passes": 0,
            "accurate_opp_half_passes": 0,
            "crosses_total": 0,
            "crosses_accurate": 0,
            "touches": 0,
            "possession_lost": 0.0,
            "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,
            "assist_rate": 0.0,
            "assists": 0,
            "expected_goals": 0.0,
            "expected_assists": 0.0,
            "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,
            "offsides": 0,
            "yellowCards": 0.0,
            "redCards": 0.0,
            "ownGoals": 0.0,
            "minutesPct": 5.9,
            "pointsPerMatch": 1.5,
            "netGoalDifferencePer90": 0.0,
            "bench_appearance_probability": 0.602,
            "bench_expected_minutes": 10.51,
            "projected_substitution_order": 3,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "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,
            "finishing_factor": 1.0,
            "creation_factor": 1.0,
            "fifa_overall": 74.0
          },
          "latest_10_games": [
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 21,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0215,
                "total_shots": 0,
                "total_pass": 7,
                "accurate_pass": 3,
                "tackles": 1,
                "tackles_won": 1,
                "aerial_won": 1,
                "duels_won": 3,
                "ball_recovery": 2
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 84,
                "rating": 6.2,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.037,
                "total_shots": 0,
                "total_pass": 23,
                "accurate_pass": 12,
                "tackles": 2,
                "tackles_won": 2,
                "interceptions": 3,
                "clearances": 3,
                "duels_won": 2,
                "ball_recovery": 1
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "total_shots": 0
              },
              "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": 16416300.0,
              "match_date": "2026-08-23",
              "home_team": "Getafe",
              "away_team": "Real Racing Club",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Real Racing Club",
              "stats": {
                "minutes": 12,
                "rating": 6.7,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0002,
                "total_shots": 0,
                "total_pass": 1,
                "clearances": 1
              },
              "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": 16421047.0,
              "match_date": "2026-08-15",
              "home_team": "Deportivo Alavés",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo Alavés",
              "stats": {
                "minutes": 9,
                "rating": 5.8,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0,
                "total_shots": 0,
                "total_pass": 1,
                "accurate_pass": 1
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            }
          ],
          "ranking": {
            "global_player_rank": 3818,
            "combined_rank_score": 1819.0,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": 721.0,
            "sofascore_rating": 6.68,
            "sofascore_appearances": 11.0,
            "fifa_rank": 2917.0,
            "fifa_overall": 74.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 17,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.5742,
            "source_file": "data/player_rankings.csv",
            "player_name": "Sebastián Boselli",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "David Møller Wolfe",
                  "ranking": 3813
                },
                {
                  "player_name": "Sebastian Berhalter",
                  "ranking": 3814
                },
                {
                  "player_name": "Sheraldo Becker",
                  "ranking": 3815
                },
                {
                  "player_name": "Hamza Igamane",
                  "ranking": 3816
                },
                {
                  "player_name": "Ciro Immobile",
                  "ranking": 3817
                }
              ],
              "lower": [
                {
                  "player_name": "Paul Pogba",
                  "ranking": 3819
                },
                {
                  "player_name": "Geoffrey Kondogbia",
                  "ranking": 3820
                },
                {
                  "player_name": "Mikey Moore",
                  "ranking": 3821
                },
                {
                  "player_name": "Laurent Abergel",
                  "ranking": 3822
                },
                {
                  "player_name": "Zeki Amdouni",
                  "ranking": 3823
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value",
            "fbref_season"
          ],
          "data_confidence": 0.564,
          "history_matches": 5,
          "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": 5,
            "data_confidence": 0.564,
            "data_sources": [
              "match_history",
              "market_value",
              "fbref_season"
            ],
            "bench_expected_minutes": 10.51,
            "bench_appearance_prob": 0.602,
            "market_value_adjustment": 0.9812,
            "fbref_prior_metrics": {
              "squad": "Getafe",
              "competition": "La Liga",
              "season": "2026-2027",
              "appearances": 2.0,
              "starts": 0.0,
              "sub_appearances": 2.0,
              "minutes_per_sub": 8.0,
              "goals_per90": 0.0,
              "assists_per90": 0.0,
              "prior_reliability": 0.0133
            },
            "rationale": "Bench projection scaled from XGBoost D_service (5 historical appearances) to 10.5 expected mins (appearance prob 0.60); FBref playing time empirical prior: 2.0 sub appearances, 8.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": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 25,
                "total_pass": 40,
                "accurate_pass": 32,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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
              },
              "trace": {
                "model": {
                  "position_service": "D",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:01:55.523250+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 402,
                    "rows": 11400
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 21.0,
                    "is_starting": true,
                    "weight": 0.2696,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 84.0,
                    "is_starting": true,
                    "weight": 0.2292,
                    "rating": 6.2
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 1.0,
                    "is_starting": false,
                    "weight": 0.1948,
                    "rating": null
                  },
                  {
                    "match_date": "2026-08-23",
                    "opponent": "Real Racing Club",
                    "minutes": 12.0,
                    "is_starting": false,
                    "weight": 0.1656,
                    "rating": 6.7
                  },
                  {
                    "match_date": "2026-08-15",
                    "opponent": "Deportivo Alavés",
                    "minutes": 9.0,
                    "is_starting": true,
                    "weight": 0.1408,
                    "rating": 5.8
                  }
                ],
                "feature_row": {
                  "history_matches": 5.0,
                  "is_starting_11": 0.0,
                  "totalClearance": 0.8532,
                  "defensive_actions": 1.4156,
                  "wonTackle": 0.728,
                  "totalTackle_p90": 1.6467,
                  "totalClearance_p90": 1.9786,
                  "aerialWon": 0.2696
                },
                "per_target": [
                  {
                    "target": "interceptionWon",
                    "predicted": 0.5758006572723389,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "interceptionWon",
                        "importance": 0.0903
                      },
                      {
                        "name": "interceptionWon_p90",
                        "importance": 0.0858
                      },
                      {
                        "name": "history_matches",
                        "importance": 0.052
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0447
                      },
                      {
                        "name": "is_starting_11",
                        "importance": 0.0364
                      }
                    ],
                    "decomposition": {
                      "base": 0.9034,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1558
                        },
                        {
                          "name": "interceptionWon",
                          "contribution": -0.0657
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0182
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0169
                        },
                        {
                          "name": "history_matches",
                          "contribution": 0.0144
                        }
                      ],
                      "others": -0.0854,
                      "total": 0.5758,
                      "log_link": true,
                      "margin_base": -0.101631,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.189337
                        },
                        {
                          "name": "interceptionWon",
                          "margin": -0.092029
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.027051
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.025856
                        },
                        {
                          "name": "history_matches",
                          "margin": 0.021981
                        }
                      ],
                      "others_margin": -0.13807
                    }
                  },
                  {
                    "target": "totalTackle",
                    "predicted": 0.9956567287445068,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "defensive_actions",
                        "importance": 0.1044
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0863
                      },
                      {
                        "name": "wonTackle",
                        "importance": 0.0629
                      },
                      {
                        "name": "challengeLost",
                        "importance": 0.045
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0342
                      }
                    ],
                    "decomposition": {
                      "base": 1.3313,
                      "items": [
                        {
                          "name": "defensive_actions",
                          "contribution": -0.1191
                        },
                        {
                          "name": "totalTackle_p90",
                          "contribution": 0.0794
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0722
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0545
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0412
                        }
                      ],
                      "others": -0.128,
                      "total": 0.9957,
                      "log_link": true,
                      "margin_base": 0.286166,
                      "item_margins": [
                        {
                          "name": "defensive_actions",
                          "margin": -0.093708
                        },
                        {
                          "name": "totalTackle_p90",
                          "margin": 0.063459
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.057517
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.045692
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.035975
                        }
                      ],
                      "others_margin": -0.121084
                    }
                  },
                  {
                    "target": "wonTackle",
                    "predicted": 0.5971514582633972,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "wonTackle",
                        "importance": 0.1003
                      },
                      {
                        "name": "defensive_actions",
                        "importance": 0.0586
                      },
                      {
                        "name": "totalTackle_p90",
                        "importance": 0.0501
                      },
                      {
                        "name": "tackle_success_rate",
                        "importance": 0.0492
                      },
                      {
                        "name": "possessionLostCtrl",
                        "importance": 0.0386
                      }
                    ],
                    "decomposition": {
                      "base": 0.8256,
                      "items": [
                        {
                          "name": "wonTackle",
                          "contribution": -0.1536
                        },
                        {
                          "name": "defensive_actions",
                          "contribution": -0.0282
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0251
                        },
                        {
                          "name": "possessionLostCtrl",
                          "contribution": -0.0135
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0121
                        }
                      ],
                      "others": 0.0041,
                      "total": 0.5972,
                      "log_link": true,
                      "margin_base": -0.191612,
                      "item_margins": [
                        {
                          "name": "wonTackle",
                          "margin": -0.205856
                        },
                        {
                          "name": "defensive_actions",
                          "margin": -0.042834
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.039789
                        },
                        {
                          "name": "possessionLostCtrl",
                          "margin": -0.022078
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.020188
                        }
                      ],
                      "others_margin": 0.006773
                    }
                  },
                  {
                    "target": "totalClearance",
                    "predicted": 1.5554876327514648,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "totalClearance",
                        "importance": 0.138
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0733
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0425
                      },
                      {
                        "name": "opp_half_pass_pct",
                        "importance": 0.034
                      },
                      {
                        "name": "aerialWon",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 3.3876,
                      "items": [
                        {
                          "name": "totalClearance",
                          "contribution": -0.8158
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.4287
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.131
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0886
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0615
                        }
                      ],
                      "others": -0.3065,
                      "total": 1.5555,
                      "log_link": true,
                      "margin_base": 1.220122,
                      "item_margins": [
                        {
                          "name": "totalClearance",
                          "margin": -0.27552
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.182355
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.063079
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.045058
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.032518
                        }
                      ],
                      "others_margin": -0.179803
                    }
                  },
                  {
                    "target": "aerialWon",
                    "predicted": 0.3932178318500519,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "aerialWon",
                        "importance": 0.1155
                      },
                      {
                        "name": "totalClearance",
                        "importance": 0.0659
                      },
                      {
                        "name": "aerial_dominance",
                        "importance": 0.0345
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0335
                      },
                      {
                        "name": "errorLeadToAShot",
                        "importance": 0.0332
                      }
                    ],
                    "decomposition": {
                      "base": 1.2696,
                      "items": [
                        {
                          "name": "aerialWon",
                          "contribution": -0.5454
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.1724
                        },
                        {
                          "name": "totalClearance",
                          "contribution": -0.0505
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0217
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "contribution": -0.0193
                        }
                      ],
                      "others": -0.0671,
                      "total": 0.3932,
                      "log_link": true,
                      "margin_base": 0.238719,
                      "item_margins": [
                        {
                          "name": "aerialWon",
                          "margin": -0.561324
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.271841
                        },
                        {
                          "name": "totalClearance",
                          "margin": -0.096054
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": -0.044188
                        },
                        {
                          "name": "opp_half_pass_pct",
                          "margin": -0.041139
                        }
                      ],
                      "others_margin": -0.157564
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 0.23353803157806396,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0373
                      },
                      {
                        "name": "long_ball_accuracy",
                        "importance": 0.0337
                      },
                      {
                        "name": "aerialLost",
                        "importance": 0.0333
                      },
                      {
                        "name": "errorLeadToAGoal",
                        "importance": 0.0306
                      },
                      {
                        "name": "totalClearance_p90",
                        "importance": 0.0306
                      }
                    ],
                    "decomposition": {
                      "base": 0.476,
                      "items": [
                        {
                          "name": "minutesPlayed",
                          "contribution": -0.0694
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.055
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "contribution": -0.0423
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0416
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "contribution": -0.0226
                        }
                      ],
                      "others": -0.0116,
                      "total": 0.2335,
                      "log_link": false,
                      "margin_base": 0.476045,
                      "item_margins": [
                        {
                          "name": "minutesPlayed",
                          "margin": -0.069383
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.055013
                        },
                        {
                          "name": "totalOppositionHalfPasses",
                          "margin": -0.042262
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.041629
                        },
                        {
                          "name": "progressiveBallCarriesCount",
                          "margin": -0.022595
                        }
                      ],
                      "others_margin": -0.011624
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.574203968048096,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "touches",
                        "importance": 0.0639
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0627
                      },
                      {
                        "name": "defensiveValueNormalized",
                        "importance": 0.0466
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0352
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0337
                      }
                    ],
                    "decomposition": {
                      "base": 6.7578,
                      "items": [
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.0461
                        },
                        {
                          "name": "long_ball_accuracy",
                          "contribution": -0.0157
                        },
                        {
                          "name": "duel_win_rate",
                          "contribution": -0.0149
                        },
                        {
                          "name": "pass_accuracy",
                          "contribution": -0.0139
                        },
                        {
                          "name": "duelWon",
                          "contribution": -0.0131
                        }
                      ],
                      "others": -0.0799,
                      "total": 6.5742,
                      "log_link": false,
                      "margin_base": 6.757789,
                      "item_margins": [
                        {
                          "name": "passValueNormalized",
                          "margin": -0.046141
                        },
                        {
                          "name": "long_ball_accuracy",
                          "margin": -0.015739
                        },
                        {
                          "name": "duel_win_rate",
                          "margin": -0.014944
                        },
                        {
                          "name": "pass_accuracy",
                          "margin": -0.01387
                        },
                        {
                          "name": "duelWon",
                          "margin": -0.013087
                        }
                      ],
                      "others_margin": -0.079802
                    }
                  }
                ],
                "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.9812, quality 0.437)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 25,
                "total_pass": 39,
                "accurate_pass": 31,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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
              },
              "params": {
                "market_value_eur": 1500000,
                "quality_factor": 0.4374,
                "boost_factor": 0.9812
              }
            },
            {
              "step": "fbref_prior_blend",
              "description": "FBref 2026-27 prior blended (weight 0.0043)",
              "stats": {
                "interceptions": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 2,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 25,
                "total_pass": 39,
                "accurate_pass": 31,
                "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": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": -11.25
              },
              "params": {
                "blend_weight": 0.0043,
                "history_matches": 5,
                "prior_reliability": 0.0133,
                "competition": "La Liga",
                "squad": "Getafe"
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 10.5 expected minutes (appearance prob 0.60)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51
              },
              "params": {
                "expected_minutes": 10.51,
                "appearance_probability": 0.602
              }
            },
            {
              "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.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51
              },
              "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.602
              }
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 17 by projected rating, fifa_overall 74.0; not used by the projection)",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 74.0
              },
              "params": {
                "match_squad_rank": 17,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 3818,
                "fifa_rank": 2917.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 74.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0,
                "scorer_weight": 0.001,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0016,
                "finishing_factor": 1.0,
                "appearance_weight": 0.602,
                "weight_rank": 14,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "interceptions": 0,
                "tackles": 0,
                "tackles_won": 0,
                "clearances": 0,
                "aerial_won": 0,
                "total_shots": 0,
                "rating": 6.5742,
                "minutes": 11,
                "total_pass": 5,
                "accurate_pass": 4,
                "duels_won": 0,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_own_half_passes": 0,
                "accurate_own_half_passes": 0,
                "total_opp_half_passes": 0,
                "accurate_opp_half_passes": 0,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 0,
                "possession_lost": 0.0,
                "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,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.0,
                "expected_assists": 0.0,
                "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,
                "offsides": 0,
                "yellowCards": 0.0,
                "redCards": 0.0,
                "ownGoals": 0.0,
                "minutesPct": 5.9,
                "pointsPerMatch": 1.5,
                "netGoalDifferencePer90": 0.0,
                "bench_appearance_probability": 0.602,
                "bench_expected_minutes": 10.51,
                "projected_substitution_order": 3,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0,
                "creation_factor": 1.0,
                "fifa_overall": 74.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0,
                "provider_weight": 0.001,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0025,
                "creation_factor": 1.0,
                "appearance_weight": 0.602,
                "weight_rank": 14,
                "eligible_players": 14
              }
            }
          ]
        },
        "Ivan Azón": {
          "player_id": 1000696,
          "position": "F",
          "position_depth": "F_BENCH",
          "is_starter": false,
          "shirt_number": 90,
          "height": 181,
          "market_value": 5200000,
          "stats": {
            "expected_goals": 0.0466,
            "goal_rate": 0.0976,
            "goals": 0,
            "shots_on_target": 0,
            "total_shots": 1,
            "expected_assists": 0.0139,
            "key_pass": 0,
            "rating": 6.8025,
            "minutes": 25,
            "total_pass": 3,
            "accurate_pass": 2,
            "duels_won": 1,
            "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": 7,
            "possession_lost": 2.2338,
            "dispossessed": 0.0,
            "duels_lost": 2,
            "aerial_lost": 0,
            "total_contest": 0,
            "won_contest": 0,
            "ball_recovery": 1,
            "challenges_lost": 0,
            "fouls": 0,
            "fouls_drawn": 0,
            "assist_rate": 0.0698,
            "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": 2,
            "total_progression": 6,
            "progressive_carries": 1,
            "shots_off_target": 0,
            "bench_appearance_probability": 0.564,
            "bench_expected_minutes": 25.4,
            "projected_substitution_order": 4,
            "substitution_rule_cap": 5,
            "projected_team_substitution_count": 4,
            "projected_substitution_expected_count": 3.079,
            "projected_substitution_game_state_adjustment": 1,
            "substitution_usage": "projected_used_substitute",
            "projected_goals": 0,
            "goal_probability": 0.0257,
            "projected_assists": 0,
            "assist_probability": 0.0078,
            "finishing_factor": 1.0901,
            "creation_factor": 1.25,
            "fifa_overall": 70.0
          },
          "latest_10_games": [
            {
              "match_id": 16416303.0,
              "match_date": "2026-09-20",
              "home_team": "Getafe",
              "away_team": "Málaga CF",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Málaga CF",
              "stats": {
                "minutes": 89,
                "rating": 7.3,
                "goal_rate": 1.0,
                "goals": 1,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.3988,
                "expected_assists": 0.0247,
                "total_shots": 5,
                "shots_on_target": 3,
                "shots_off_target": 1,
                "total_pass": 12,
                "accurate_pass": 9,
                "key_pass": 1,
                "aerial_won": 1,
                "duels_won": 2,
                "ball_recovery": 3
              },
              "has_player_stats": true,
              "league_name": "LaLiga",
              "league_id": "8",
              "league_slug": "laliga",
              "league_country": "Spain",
              "season_id": "97268",
              "season_name": "LaLiga 26/27",
              "season_year": "26/27"
            },
            {
              "match_id": 16416336.0,
              "match_date": "2026-09-17",
              "home_team": "Real Betis",
              "away_team": "Getafe",
              "team_side": "away",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Real Betis",
              "stats": {
                "minutes": 90,
                "rating": 7.0,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_goals": 0.056,
                "expected_assists": 0.0821,
                "total_shots": 2,
                "shots_on_target": 1,
                "shots_off_target": 1,
                "total_pass": 19,
                "accurate_pass": 14,
                "key_pass": 1,
                "tackles": 1,
                "tackles_won": 1,
                "clearances": 1,
                "aerial_won": 4,
                "duels_won": 8,
                "ball_recovery": 2
              },
              "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": 16416326.0,
              "match_date": "2026-09-13",
              "home_team": "Getafe",
              "away_team": "Deportivo de A Coruña",
              "team_side": "home",
              "is_starting_11": 1,
              "team": "Getafe",
              "opponent": "Deportivo de A Coruña",
              "stats": {
                "minutes": 76,
                "rating": 6.9,
                "assist_rate": 1.0,
                "assists": 1,
                "expected_goals": 0.0761,
                "expected_assists": 0.2082,
                "total_shots": 1,
                "shots_off_target": 1,
                "total_pass": 13,
                "accurate_pass": 11,
                "key_pass": 2,
                "tackles": 1,
                "interceptions": 1,
                "clearances": 1,
                "aerial_won": 3,
                "duels_won": 6,
                "ball_recovery": 2
              },
              "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": 16416348.0,
              "match_date": "2026-09-07",
              "home_team": "Getafe",
              "away_team": "Celta Vigo",
              "team_side": "home",
              "is_starting_11": 0,
              "team": "Getafe",
              "opponent": "Celta Vigo",
              "stats": {
                "minutes": 17,
                "rating": 6.5,
                "assist_rate": 0.0,
                "assists": 0,
                "expected_assists": 0.0003,
                "total_shots": 0,
                "total_pass": 3,
                "accurate_pass": 1,
                "aerial_won": 1,
                "duels_won": 1,
                "ball_recovery": 1
              },
              "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": 4905,
            "combined_rank_score": 2997.5,
            "ranking_source": "sofascore_plus_fifa_csv",
            "ranking_status": "combined",
            "sofascore_rank": null,
            "sofascore_rating": null,
            "sofascore_appearances": 0.0,
            "fifa_rank": 5809.0,
            "fifa_overall": 70.0,
            "fifa_source": "EA SPORTS FC official ratings",
            "match_squad_rank": 4,
            "squad_role": "substitute",
            "ranking_match": "player_id",
            "projected_match_rating": 6.8025,
            "source_file": "data/player_rankings.csv",
            "player_name": "Ivan Azón",
            "ranking_neighbors": {
              "upper": [
                {
                  "player_name": "Gabri Martínez",
                  "ranking": 4900
                },
                {
                  "player_name": "Gabriel Silva",
                  "ranking": 4901
                },
                {
                  "player_name": "Óscar Aranda",
                  "ranking": 4902
                },
                {
                  "player_name": "Ryunosuke Sato",
                  "ranking": 4903
                },
                {
                  "player_name": "Santi García",
                  "ranking": 4904
                }
              ],
              "lower": [
                {
                  "player_name": "Diogo Travassos",
                  "ranking": 4906
                },
                {
                  "player_name": "Miha Zajc",
                  "ranking": 4907
                },
                {
                  "player_name": "Rokas Pukštas",
                  "ranking": 4908
                },
                {
                  "player_name": "Alex Dobre",
                  "ranking": 4909
                },
                {
                  "player_name": "David Moses",
                  "ranking": 4910
                }
              ]
            }
          },
          "data_sources": [
            "match_history",
            "market_value"
          ],
          "data_confidence": 0.5,
          "history_matches": 4,
          "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": 4,
            "data_confidence": 0.5,
            "data_sources": [
              "match_history",
              "market_value"
            ],
            "bench_expected_minutes": 25.399959715539993,
            "bench_appearance_prob": 0.5636345325245452,
            "market_value_adjustment": 0.9894,
            "fbref_prior_metrics": null,
            "rationale": "Bench projection scaled from XGBoost F_service (4 historical appearances) to 25.4 expected mins (appearance prob 0.56)."
          },
          "stat_evolution": [
            {
              "step": "xgboost_raw",
              "description": "XGBoost F_service raw output over 7 target models",
              "stats": {
                "expected_goals": 0.3058,
                "goal_rate": 0.3497,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0606,
                "key_pass": 1,
                "rating": 6.8025,
                "minutes": 68,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 24,
                "possession_lost": 8.0,
                "dispossessed": 0.0,
                "duels_lost": 6,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.25,
                "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": 6,
                "total_progression": 22,
                "progressive_carries": 3,
                "shots_off_target": 2
              },
              "trace": {
                "model": {
                  "position_service": "F",
                  "schema_version": 5,
                  "trained_at": "2026-09-29T10:02:15.441175+00:00",
                  "trained_on": {
                    "matches": 593,
                    "players": 325,
                    "rows": 6303
                  }
                },
                "player_history": [
                  {
                    "match_date": "2026-09-20",
                    "opponent": "Málaga CF",
                    "minutes": 89.0,
                    "is_starting": true,
                    "weight": 0.3138,
                    "rating": 7.3
                  },
                  {
                    "match_date": "2026-09-17",
                    "opponent": "Real Betis",
                    "minutes": 90.0,
                    "is_starting": true,
                    "weight": 0.2667,
                    "rating": 7.0
                  },
                  {
                    "match_date": "2026-09-13",
                    "opponent": "Deportivo de A Coruña",
                    "minutes": 76.0,
                    "is_starting": true,
                    "weight": 0.2267,
                    "rating": 6.9
                  },
                  {
                    "match_date": "2026-09-07",
                    "opponent": "Celta Vigo",
                    "minutes": 17.0,
                    "is_starting": false,
                    "weight": 0.1927,
                    "rating": 6.5
                  }
                ],
                "feature_row": {
                  "history_matches": 4.0,
                  "is_starting_11": 0.0,
                  "onTargetScoringAttempt": 1.2082,
                  "totalShots": 2.3293,
                  "minutesPlayed": 72.4435,
                  "shotValueNormalized": 0.0706,
                  "accuratePass": 9.2454,
                  "expectedAssists": 0.0769
                },
                "per_target": [
                  {
                    "target": "expectedGoals",
                    "predicted": 0.3057843744754791,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0826
                      },
                      {
                        "name": "xg_per_shot",
                        "importance": 0.0724
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.048
                      },
                      {
                        "name": "touches_p90",
                        "importance": 0.0379
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0352
                      }
                    ],
                    "decomposition": {
                      "base": 0.3626,
                      "items": [
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0607
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0237
                        },
                        {
                          "name": "touches_p90",
                          "contribution": 0.0252
                        },
                        {
                          "name": "passValueNormalized",
                          "contribution": -0.013
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0105
                        }
                      ],
                      "others": -0.0215,
                      "total": 0.3058,
                      "log_link": true,
                      "margin_base": -1.014464,
                      "item_margins": [
                        {
                          "name": "xg_per_shot",
                          "margin": -0.183324
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.075482
                        },
                        {
                          "name": "touches_p90",
                          "margin": 0.074687
                        },
                        {
                          "name": "passValueNormalized",
                          "margin": -0.037769
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.031536
                        }
                      ],
                      "others_margin": -0.067951
                    }
                  },
                  {
                    "target": "goals",
                    "predicted": 0.3497123122215271,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1258
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0801
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0583
                      },
                      {
                        "name": "bigChanceMissed",
                        "importance": 0.0323
                      },
                      {
                        "name": "minutesPlayed",
                        "importance": 0.0265
                      }
                    ],
                    "decomposition": {
                      "base": 0.2866,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0311
                        },
                        {
                          "name": "totalShots",
                          "contribution": 0.025
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0272
                        },
                        {
                          "name": "duelLost",
                          "contribution": 0.0187
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.0184
                        }
                      ],
                      "others": 0.0049,
                      "total": 0.3497,
                      "log_link": true,
                      "margin_base": -1.249595,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.114762
                        },
                        {
                          "name": "totalShots",
                          "margin": 0.093163
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.092569
                        },
                        {
                          "name": "duelLost",
                          "margin": 0.058988
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.054986
                        }
                      ],
                      "others_margin": 0.014007
                    }
                  },
                  {
                    "target": "onTargetScoringAttempt",
                    "predicted": 0.536279022693634,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.1486
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0633
                      },
                      {
                        "name": "shot_accuracy",
                        "importance": 0.0618
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.0343
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0317
                      }
                    ],
                    "decomposition": {
                      "base": 0.5888,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0693
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": 0.0546
                        },
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0235
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.0232
                        },
                        {
                          "name": "xg_per_shot",
                          "contribution": -0.0214
                        }
                      ],
                      "others": -0.0161,
                      "total": 0.5363,
                      "log_link": true,
                      "margin_base": -0.52966,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.12531
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": 0.099916
                        },
                        {
                          "name": "is_starting_11",
                          "margin": -0.041748
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.041252
                        },
                        {
                          "name": "xg_per_shot",
                          "margin": -0.038052
                        }
                      ],
                      "others_margin": -0.029498
                    }
                  },
                  {
                    "target": "totalShots",
                    "predicted": 2.110979022693634,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "minutesPlayed",
                        "importance": 0.1122
                      },
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0872
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0825
                      },
                      {
                        "name": "progressiveBallCarriesCount",
                        "importance": 0.074
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0566
                      }
                    ],
                    "decomposition": {
                      "base": 1.4352,
                      "items": [
                        {
                          "name": "totalShots",
                          "contribution": 0.2606
                        },
                        {
                          "name": "minutesPlayed",
                          "contribution": 0.245
                        },
                        {
                          "name": "numberOfSprints",
                          "contribution": 0.065
                        },
                        {
                          "name": "totalShots_p90",
                          "contribution": -0.0626
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0524
                        }
                      ],
                      "others": 0.2201,
                      "total": 2.1109,
                      "log_link": false,
                      "margin_base": 1.435195,
                      "item_margins": [
                        {
                          "name": "totalShots",
                          "margin": 0.260551
                        },
                        {
                          "name": "minutesPlayed",
                          "margin": 0.244956
                        },
                        {
                          "name": "numberOfSprints",
                          "margin": 0.064965
                        },
                        {
                          "name": "totalShots_p90",
                          "margin": -0.062568
                        },
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.052379
                        }
                      ],
                      "others_margin": 0.220212
                    }
                  },
                  {
                    "target": "expectedAssists",
                    "predicted": 0.060582783073186874,
                    "scale": "per match (raw)",
                    "top_features": [
                      {
                        "name": "expectedAssists",
                        "importance": 0.1197
                      },
                      {
                        "name": "accuratePass",
                        "importance": 0.0571
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0459
                      },
                      {
                        "name": "accurateOppositionHalfPasses",
                        "importance": 0.0451
                      },
                      {
                        "name": "passValueNormalized",
                        "importance": 0.0369
                      }
                    ],
                    "decomposition": {
                      "base": 0.06,
                      "items": [
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0287
                        },
                        {
                          "name": "shot_waste_rate",
                          "contribution": -0.0087
                        },
                        {
                          "name": "history_matches",
                          "contribution": -0.0037
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.003
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0028
                        }
                      ],
                      "others": -0.0099,
                      "total": 0.0606,
                      "log_link": true,
                      "margin_base": -2.812623,
                      "item_margins": [
                        {
                          "name": "expectedAssists",
                          "margin": 0.390943
                        },
                        {
                          "name": "shot_waste_rate",
                          "margin": -0.102898
                        },
                        {
                          "name": "history_matches",
                          "margin": -0.047099
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.039417
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.038309
                        }
                      ],
                      "others_margin": -0.154342
                    }
                  },
                  {
                    "target": "keyPass",
                    "predicted": 0.5451682209968567,
                    "scale": "count per match",
                    "top_features": [
                      {
                        "name": "accuratePass",
                        "importance": 0.1105
                      },
                      {
                        "name": "keyPass",
                        "importance": 0.0916
                      },
                      {
                        "name": "ballCarriesCount",
                        "importance": 0.0476
                      },
                      {
                        "name": "totalOppositionHalfPasses",
                        "importance": 0.0444
                      },
                      {
                        "name": "totalPass",
                        "importance": 0.0409
                      }
                    ],
                    "decomposition": {
                      "base": 0.6782,
                      "items": [
                        {
                          "name": "is_starting_11",
                          "contribution": -0.0993
                        },
                        {
                          "name": "ballCarriesCount",
                          "contribution": -0.0241
                        },
                        {
                          "name": "accuratePass",
                          "contribution": -0.0167
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0166
                        },
                        {
                          "name": "totalPass",
                          "contribution": -0.0139
                        }
                      ],
                      "others": 0.0044,
                      "total": 0.5452,
                      "log_link": true,
                      "margin_base": -0.388283,
                      "item_margins": [
                        {
                          "name": "is_starting_11",
                          "margin": -0.158223
                        },
                        {
                          "name": "ballCarriesCount",
                          "margin": -0.042436
                        },
                        {
                          "name": "accuratePass",
                          "margin": -0.030617
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.030425
                        },
                        {
                          "name": "totalPass",
                          "margin": -0.025433
                        }
                      ],
                      "others_margin": 0.007906
                    }
                  },
                  {
                    "target": "rating",
                    "predicted": 6.802545070648193,
                    "scale": "0-10",
                    "top_features": [
                      {
                        "name": "onTargetScoringAttempt",
                        "importance": 0.0847
                      },
                      {
                        "name": "dribbleValueNormalized",
                        "importance": 0.0724
                      },
                      {
                        "name": "shotValueNormalized",
                        "importance": 0.0628
                      },
                      {
                        "name": "dispossessed",
                        "importance": 0.0551
                      },
                      {
                        "name": "totalShots",
                        "importance": 0.0438
                      }
                    ],
                    "decomposition": {
                      "base": 6.815,
                      "items": [
                        {
                          "name": "onTargetScoringAttempt",
                          "contribution": -0.0463
                        },
                        {
                          "name": "expectedAssists",
                          "contribution": 0.0408
                        },
                        {
                          "name": "big_chance_conversion",
                          "contribution": 0.0224
                        },
                        {
                          "name": "totalShots",
                          "contribution": -0.0102
                        },
                        {
                          "name": "shot_accuracy",
                          "contribution": -0.0095
                        }
                      ],
                      "others": -0.0097,
                      "total": 6.8025,
                      "log_link": false,
                      "margin_base": 6.814961,
                      "item_margins": [
                        {
                          "name": "onTargetScoringAttempt",
                          "margin": -0.046328
                        },
                        {
                          "name": "expectedAssists",
                          "margin": 0.040757
                        },
                        {
                          "name": "big_chance_conversion",
                          "margin": 0.022389
                        },
                        {
                          "name": "totalShots",
                          "margin": -0.010209
                        },
                        {
                          "name": "shot_accuracy",
                          "margin": -0.009502
                        }
                      ],
                      "others_margin": -0.009524
                    }
                  }
                ],
                "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.9894, quality 0.465)",
              "stats": {
                "expected_goals": 0.3025,
                "goal_rate": 0.346,
                "goals": 0,
                "shots_on_target": 1,
                "total_shots": 3,
                "expected_assists": 0.0599,
                "key_pass": 1,
                "rating": 6.8025,
                "minutes": 68,
                "total_pass": 12,
                "accurate_pass": 9,
                "duels_won": 4,
                "total_long_balls": 0,
                "accurate_long_balls": 0,
                "total_opp_half_passes": 9,
                "accurate_opp_half_passes": 6,
                "crosses_total": 0,
                "crosses_accurate": 0,
                "touches": 23,
                "possession_lost": 7.9151,
                "dispossessed": 0.0,
                "duels_lost": 5,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 2,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.2473,
                "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": 6,
                "total_progression": 22,
                "progressive_carries": 3,
                "shots_off_target": 2
              },
              "params": {
                "market_value_eur": 5200000,
                "quality_factor": 0.4646,
                "boost_factor": 0.9894
              }
            },
            {
              "step": "minutes_scale",
              "description": "Bench projection scaled to 25.4 expected minutes (appearance prob 0.56)",
              "stats": {
                "expected_goals": 0.0854,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0169,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4
              },
              "params": {
                "expected_minutes": 25.4,
                "appearance_probability": 0.564
              }
            },
            {
              "step": "final_cap",
              "description": "Stats clamped to historical constraints and shot-component identity",
              "stats": {
                "expected_goals": 0.0854,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0169,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4
              },
              "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 0.65 (squad xG sum 1.1918, xG scale 0.5454, xA scale 0.8249, team xA 0.42 = 0.65 x lambda)",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25
              },
              "params": {
                "team_lambda": 0.65,
                "squad_xg_sum": 1.1918,
                "squad_xa_sum": 0.5122,
                "team_expected_assists": 0.4225,
                "team_xa_to_xg_ratio": 0.65,
                "bench_appearance_weighted": true,
                "xg_scale": 0.5454,
                "xa_scale": 0.8249,
                "opponent_lambda": 3.944,
                "scoreline_reset": true,
                "appearance_weight": 0.564
              },
              "changes": [
                {
                  "stat": "expected_goals",
                  "before": 0.0854,
                  "after": 0.0466
                }
              ]
            },
            {
              "step": "rankings_attached",
              "description": "Global ranking attached for display (match squad rank 4 by projected rating, fifa_overall 70.0; not used by the projection)",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "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,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25,
                "fifa_overall": 70.0
              },
              "params": {
                "match_squad_rank": 4,
                "squad_role": "substitute",
                "squad_rank_basis": "projected_rating",
                "affects_projection": false,
                "ranking_source": "sofascore_plus_fifa_csv",
                "ranking_status": "combined",
                "global_player_rank": 4905,
                "fifa_rank": 5809.0,
                "fifa_source": "EA SPORTS FC official ratings",
                "ranking_match": "player_id",
                "fifa_overall": 70.0
              }
            },
            {
              "step": "integer_goal_projection",
              "description": "Team scoreline allocation skipped: 0 projected goals",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25,
                "fifa_overall": 70.0
              },
              "params": {
                "allocation_applied": false,
                "team_goals": 0,
                "goals_allocated": 0,
                "goal_probability": 0.0257,
                "scorer_weight": 0.0287,
                "squad_weight_total": 0.6066,
                "weight_share": 0.0472,
                "finishing_factor": 1.0901,
                "appearance_weight": 0.564,
                "weight_rank": 8,
                "eligible_players": 14
              }
            },
            {
              "step": "integer_assist_projection",
              "description": "Team scoreline allocation skipped: 0 projected assists",
              "stats": {
                "expected_goals": 0.0466,
                "goal_rate": 0.0976,
                "goals": 0,
                "shots_on_target": 0,
                "total_shots": 1,
                "expected_assists": 0.0139,
                "key_pass": 0,
                "rating": 6.8025,
                "minutes": 25,
                "total_pass": 3,
                "accurate_pass": 2,
                "duels_won": 1,
                "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": 7,
                "possession_lost": 2.2338,
                "dispossessed": 0.0,
                "duels_lost": 2,
                "aerial_lost": 0,
                "total_contest": 0,
                "won_contest": 0,
                "ball_recovery": 1,
                "challenges_lost": 0,
                "fouls": 0,
                "fouls_drawn": 0,
                "assist_rate": 0.0698,
                "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": 2,
                "total_progression": 6,
                "progressive_carries": 1,
                "shots_off_target": 0,
                "bench_appearance_probability": 0.564,
                "bench_expected_minutes": 25.4,
                "projected_substitution_order": 4,
                "substitution_rule_cap": 5,
                "projected_team_substitution_count": 4,
                "projected_substitution_expected_count": 3.079,
                "projected_substitution_game_state_adjustment": 1,
                "substitution_usage": "projected_used_substitute",
                "projected_goals": 0,
                "goal_probability": 0.0257,
                "projected_assists": 0,
                "assist_probability": 0.0078,
                "finishing_factor": 1.0901,
                "creation_factor": 1.25,
                "fifa_overall": 70.0
              },
              "params": {
                "allocation_applied": false,
                "team_assists": 0,
                "assists_allocated": 0,
                "assist_probability": 0.0078,
                "provider_weight": 0.0098,
                "squad_weight_total": 0.4059,
                "weight_share": 0.0241,
                "creation_factor": 1.25,
                "appearance_weight": 0.564,
                "weight_rank": 10,
                "eligible_players": 14
              }
            }
          ]
        }
      },
      "team_totals": {
        "projected_goals": 0,
        "expected_goals": 0.65,
        "expected_assists": 0.42,
        "total_shots": 9,
        "shots_on_target": 2,
        "total_passes": 282,
        "interceptions": 3,
        "tackles": 6,
        "avg_rating": 6.82,
        "possession_estimated_pct": 45.5,
        "pressing_actions_per_90": 6.3
      }
    }
  },
  "antagonist_report": {
    "home_attacking_duels": [
      {
        "attacker": "Raphinha",
        "attacker_role": "LWB",
        "attacker_market_value": 63000000,
        "attacker_height": 176,
        "attacker_skill_quality": 0.859,
        "defenders": [
          "Francho Serrano"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.439,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.611,
        "xg_contribution": 0.3629,
        "xg_multiplier": 1.2811,
        "shots_in_zone": 1.2,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.6,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 3.1,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Francho Serrano",
            "role": "RWB",
            "market_value": 3100000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.4,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.389
          }
        ],
        "duel_analysis": "Raphinha (LWB) has a clear attacking advantage against Francho Serrano in a direct 1v1 contest. Duel win probability: 61%. The quality gap is significant (€63M vs €3M avg). Matchup xG multiplier ×1.28 (×1.00 = his usual level). Projected xG contribution: 0.363 — and projects to generate high-quality chances."
      },
      {
        "attacker": "Lamine Yamal",
        "attacker_role": "CM",
        "attacker_market_value": 237000000,
        "attacker_height": 183,
        "attacker_skill_quality": 0.9,
        "defenders": [
          "Mario Martín"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.531,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.604,
        "xg_contribution": 0.4028,
        "xg_multiplier": 1.2705,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.6,
        "aerial_duels": 2,
        "aerial_won": 1.1,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.2,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Mario Martín",
            "role": "CM",
            "market_value": 10700000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.5,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.9,
            "defensive_success_rate": 0.396
          }
        ],
        "duel_analysis": "Lamine Yamal (CM) has a clear attacking advantage against Mario Martín in a direct 1v1 contest. Duel win probability: 60%. The quality gap is significant (€237M vs €11M avg). Matchup xG multiplier ×1.27 (×1.00 = his usual level). Projected xG contribution: 0.403 — and projects to generate high-quality chances."
      },
      {
        "attacker": "Pedri",
        "attacker_role": "CM",
        "attacker_market_value": 164000000,
        "attacker_height": 174,
        "attacker_skill_quality": 0.9,
        "defenders": [
          "Mario Martín"
        ],
        "defender_roles": [
          "CM"
        ],
        "def_skill_quality_avg": 0.531,
        "duel_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.568,
        "xg_contribution": 0.1828,
        "xg_multiplier": 1.2175,
        "shots_in_zone": 1.9,
        "dribbles_attempted": 3,
        "dribbles_successful": 1.5,
        "aerial_duels": 2,
        "aerial_won": 0.9,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.3,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Mario Martín",
            "role": "CM",
            "market_value": 10700000,
            "tackles_attempted": 2.0,
            "tackles_won": 1.5,
            "fouls_committed": 0.5,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.1,
            "defensive_success_rate": 0.432
          }
        ],
        "duel_analysis": "Pedri (CM) has a clear attacking advantage against Mario Martín in a direct 1v1 contest. Duel win probability: 57%. The quality gap is significant (€164M vs €11M avg). Matchup xG multiplier ×1.22 (×1.00 = his usual level). Projected xG contribution: 0.183 — and projects to generate high-quality chances."
      },
      {
        "attacker": "Dani Olmo",
        "attacker_role": "RWB",
        "attacker_market_value": 58000000,
        "attacker_height": 179,
        "attacker_skill_quality": 0.848,
        "defenders": [
          "Ramón Terrats"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.44,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.612,
        "xg_contribution": 0.2305,
        "xg_multiplier": 1.2828,
        "shots_in_zone": 1.2,
        "dribbles_attempted": 2,
        "dribbles_successful": 1.1,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 3.0,
        "fouls_drawn": 1.1,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Ramón Terrats",
            "role": "LWB",
            "market_value": 3200000,
            "tackles_attempted": 1.9,
            "tackles_won": 1.4,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.388
          }
        ],
        "duel_analysis": "Dani Olmo (RWB) has a clear attacking advantage against Ramón Terrats in a direct 1v1 contest. Duel win probability: 61%. The quality gap is significant (€58M vs €3M avg). Matchup xG multiplier ×1.28 (×1.00 = his usual level). Projected xG contribution: 0.231 — and projects to generate high-quality chances."
      },
      {
        "attacker": "Anthony Gordon",
        "attacker_role": "ST",
        "attacker_market_value": 82000000,
        "attacker_height": 183,
        "attacker_skill_quality": 0.884,
        "defenders": [
          "Andrés García",
          "Abdel Abqar"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.461,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.371,
        "xg_contribution": 0.5497,
        "xg_multiplier": 1.2519,
        "shots_in_zone": 2.8,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.7,
        "aerial_duels": 3,
        "aerial_won": 1.7,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.6,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Andrés García",
            "role": "CB",
            "market_value": 6500000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.8,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.629
          },
          {
            "player": "Abdel Abqar",
            "role": "CB",
            "market_value": 3300000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.8,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.629
          }
        ],
        "duel_analysis": "Anthony Gordon (ST) has a clear attacking advantage against Andrés García and Abdel Abqar in a 2-defender block. Duel win probability: 37%. The quality gap is significant (€82M vs €5M avg). Matchup xG multiplier ×1.25 (×1.00 = his usual level). Projected xG contribution: 0.550 — and projects to generate high-quality chances."
      },
      {
        "attacker": "Karim Adeyemi",
        "attacker_role": "ST",
        "attacker_market_value": 41000000,
        "attacker_height": 180,
        "attacker_skill_quality": 0.786,
        "defenders": [
          "Andrés García",
          "Abdel Abqar"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.461,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.315,
        "xg_contribution": 0.5346,
        "xg_multiplier": 1.1696,
        "shots_in_zone": 2.6,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.6,
        "aerial_duels": 3,
        "aerial_won": 1.6,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.6,
        "pressing_intensity_on_attacker": "LOW",
        "defender_stats": [
          {
            "player": "Andrés García",
            "role": "CB",
            "market_value": 6500000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.8,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.8,
            "clearances_in_zone": 0.7,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.685
          },
          {
            "player": "Abdel Abqar",
            "role": "CB",
            "market_value": 3300000,
            "tackles_attempted": 1.0,
            "tackles_won": 0.8,
            "fouls_committed": 0.6,
            "interceptions_in_zone": 0.7,
            "clearances_in_zone": 0.6,
            "aerial_duels_won": 0.7,
            "defensive_success_rate": 0.685
          }
        ],
        "duel_analysis": "Karim Adeyemi (ST) is slightly favored against Andrés García and Abdel Abqar in a 2-defender block. Duel win probability: 32%. The quality gap is significant (€41M vs €5M avg). Matchup xG multiplier ×1.17 (×1.00 = his usual level). Projected xG contribution: 0.535 — creating consistent moderate threat."
      }
    ],
    "away_attacking_duels": [
      {
        "attacker": "Ramón Terrats",
        "attacker_role": "LWB",
        "attacker_market_value": 3200000,
        "attacker_height": 179,
        "attacker_skill_quality": 0.44,
        "defenders": [
          "Dani Olmo"
        ],
        "defender_roles": [
          "RWB"
        ],
        "def_skill_quality_avg": 0.848,
        "duel_zone": "LWB vs RWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.228,
        "xg_contribution": 0.168,
        "xg_multiplier": 0.7172,
        "shots_in_zone": 0.7,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.4,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 2.2,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Dani Olmo",
            "role": "RWB",
            "market_value": 58000000,
            "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": 1.0,
            "defensive_success_rate": 0.772
          }
        ],
        "duel_analysis": "Ramón Terrats (LWB) is heavily outmatched defensively against Dani Olmo in a direct 1v1 contest. Duel win probability: 23%. The quality gap is significant (€3M vs €58M avg). Matchup xG multiplier ×0.72 (×1.00 = his usual level). Projected xG contribution: 0.168 — with very limited chance creation expected."
      },
      {
        "attacker": "Mario Martín",
        "attacker_role": "CM",
        "attacker_market_value": 10700000,
        "attacker_height": 177,
        "attacker_skill_quality": 0.531,
        "defenders": [
          "Fermín López"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.894,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.295,
        "xg_contribution": 0.1188,
        "xg_multiplier": 0.7722,
        "shots_in_zone": 1.3,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.5,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Fermín López",
            "role": "CDM",
            "market_value": 103000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.705
          }
        ],
        "duel_analysis": "Mario Martín (CM) is heavily outmatched defensively against Fermín López in a direct 1v1 contest. Duel win probability: 30%. The quality gap is significant (€11M vs €103M avg). Matchup xG multiplier ×0.77 (×1.00 = his usual level). Projected xG contribution: 0.119 — with very limited chance creation expected."
      },
      {
        "attacker": "Orel Mangala",
        "attacker_role": "CM",
        "attacker_market_value": 8600000,
        "attacker_height": 178,
        "attacker_skill_quality": 0.506,
        "defenders": [
          "Fermín López"
        ],
        "defender_roles": [
          "CDM"
        ],
        "def_skill_quality_avg": 0.894,
        "duel_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.287,
        "xg_contribution": 0.0816,
        "xg_multiplier": 0.7601,
        "shots_in_zone": 1.3,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.5,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Fermín López",
            "role": "CDM",
            "market_value": 103000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 1.0,
            "defensive_success_rate": 0.713
          }
        ],
        "duel_analysis": "Orel Mangala (CM) is heavily outmatched defensively against Fermín López in a direct 1v1 contest. Duel win probability: 29%. The quality gap is significant (€9M vs €103M avg). Matchup xG multiplier ×0.76 (×1.00 = his usual level). Projected xG contribution: 0.082 — with very limited chance creation expected."
      },
      {
        "attacker": "Francho Serrano",
        "attacker_role": "RWB",
        "attacker_market_value": 3100000,
        "attacker_height": 177,
        "attacker_skill_quality": 0.439,
        "defenders": [
          "Raphinha"
        ],
        "defender_roles": [
          "LWB"
        ],
        "def_skill_quality_avg": 0.859,
        "duel_zone": "RWB vs LWB",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.229,
        "xg_contribution": 0.075,
        "xg_multiplier": 0.7189,
        "shots_in_zone": 0.7,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.4,
        "aerial_duels": 2,
        "aerial_won": 1.0,
        "crosses_in_zone": 2.2,
        "fouls_drawn": 1.4,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Raphinha",
            "role": "LWB",
            "market_value": 63000000,
            "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": 1.0,
            "defensive_success_rate": 0.771
          }
        ],
        "duel_analysis": "Francho Serrano (RWB) is heavily outmatched defensively against Raphinha in a direct 1v1 contest. Duel win probability: 23%. The quality gap is significant (€3M vs €63M avg). Matchup xG multiplier ×0.72 (×1.00 = his usual level). Projected xG contribution: 0.075 — with very limited chance creation expected."
      },
      {
        "attacker": "Martín Satriano",
        "attacker_role": "SS",
        "attacker_market_value": 10600000,
        "attacker_height": 187,
        "attacker_skill_quality": 0.529,
        "defenders": [
          "Pau Cubarsí"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.891,
        "duel_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.296,
        "xg_contribution": 0.2207,
        "xg_multiplier": 0.7738,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 3,
        "dribbles_successful": 0.8,
        "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": "Pau Cubarsí",
            "role": "CB",
            "market_value": 94000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.704
          }
        ],
        "duel_analysis": "Martín Satriano (SS) is heavily outmatched defensively against Pau Cubarsí in a direct 1v1 contest. Duel win probability: 30%. The quality gap is significant (€11M vs €94M avg). Matchup xG multiplier ×0.77 (×1.00 = his usual level). Projected xG contribution: 0.221 — with very limited chance creation expected."
      },
      {
        "attacker": "Enes Ünal",
        "attacker_role": "SS",
        "attacker_market_value": 6800000,
        "attacker_height": 185,
        "attacker_skill_quality": 0.484,
        "defenders": [
          "Pau Cubarsí"
        ],
        "defender_roles": [
          "CB"
        ],
        "def_skill_quality_avg": 0.891,
        "duel_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "numerical_situation": "1v1",
        "duel_win_rate": 0.268,
        "xg_contribution": 0.2197,
        "xg_multiplier": 0.7321,
        "shots_in_zone": 1.9,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.5,
        "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": "Pau Cubarsí",
            "role": "CB",
            "market_value": 94000000,
            "tackles_attempted": 2.3,
            "tackles_won": 2.0,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 0.5,
            "aerial_duels_won": 0.8,
            "defensive_success_rate": 0.732
          }
        ],
        "duel_analysis": "Enes Ünal (SS) is heavily outmatched defensively against Pau Cubarsí in a direct 1v1 contest. Duel win probability: 27%. The quality gap is significant (€7M vs €94M avg). Matchup xG multiplier ×0.73 (×1.00 = his usual level). Projected xG contribution: 0.220 — with very limited chance creation expected."
      },
      {
        "attacker": "Christantus Uche",
        "attacker_role": "ST",
        "attacker_market_value": 13200000,
        "attacker_height": 190,
        "attacker_skill_quality": 0.559,
        "defenders": [
          "Pau Cubarsí",
          "Jules Koundé"
        ],
        "defender_roles": [
          "CB",
          "CB"
        ],
        "def_skill_quality_avg": 0.876,
        "duel_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "numerical_situation": "1v2",
        "duel_win_rate": 0.18,
        "xg_contribution": 0.2257,
        "xg_multiplier": 0.8268,
        "shots_in_zone": 2.0,
        "dribbles_attempted": 2,
        "dribbles_successful": 0.3,
        "aerial_duels": 3,
        "aerial_won": 2.0,
        "crosses_in_zone": 0.0,
        "fouls_drawn": 1.6,
        "pressing_intensity_on_attacker": "ULTRA_HIGH",
        "defender_stats": [
          {
            "player": "Pau Cubarsí",
            "role": "CB",
            "market_value": 94000000,
            "tackles_attempted": 1.2,
            "tackles_won": 1.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 1.2,
            "aerial_duels_won": 0.5,
            "defensive_success_rate": 0.82
          },
          {
            "player": "Jules Koundé",
            "role": "CB",
            "market_value": 64000000,
            "tackles_attempted": 1.1,
            "tackles_won": 1.1,
            "fouls_committed": 0.4,
            "interceptions_in_zone": 1.4,
            "clearances_in_zone": 1.2,
            "aerial_duels_won": 0.5,
            "defensive_success_rate": 0.82
          }
        ],
        "duel_analysis": "Christantus Uche (ST) faces tough defensive resistance against Pau Cubarsí and Jules Koundé in a 2-defender block. Duel win probability: 18%. The quality gap is significant (€13M vs €79M avg). Matchup xG multiplier ×0.83 (×1.00 = his usual level). Projected xG contribution: 0.226 — and is restricted in space and time on the ball."
      }
    ],
    "midfield_battle": {
      "home_midfield_power": 0.93,
      "away_midfield_power": 0.504,
      "home_creative_power": 1.012,
      "away_creative_power": 0.44,
      "home_defensive_power": 0.791,
      "away_defensive_power": 0.418,
      "home_dominance_ratio": 0.649,
      "home_midfield_count": 5,
      "away_midfield_count": 4,
      "home_midfield_players": [
        "Lamine Yamal",
        "Pedri",
        "Fermín López",
        "Raphinha",
        "Dani Olmo"
      ],
      "away_midfield_players": [
        "Mario Martín",
        "Orel Mangala",
        "Ramón Terrats",
        "Francho Serrano"
      ],
      "possession_advantage": "home",
      "estimated_possession_home_pct": 54.5,
      "estimated_possession_away_pct": 45.5,
      "home_pressing_actions_per_90": 8.8,
      "away_pressing_actions_per_90": 6.3,
      "home_key_passes_projected": 7.6,
      "away_key_passes_projected": 4.1,
      "home_throughball_threat": 3.6,
      "away_throughball_threat": 1.9,
      "key_personal_duel": "Lamine Yamal vs Mario Martín",
      "midfield_lambda_factor_home": 1.062,
      "midfield_lambda_factor_away": 0.947
    },
    "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": 3.944,
    "away_lambda": 0.65,
    "home_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle"
    ],
    "away_top_threat_zones": [
      "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
      "Shadow Striker vs Centre Back — Half-Space Threat"
    ],
    "home_player_antagonists": {
      "Raphinha": {
        "opponents": [
          "Francho Serrano"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Lamine Yamal": {
        "opponents": [
          "Mario Martín",
          "Orel Mangala"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Pedri": {
        "opponents": [
          "Mario Martín",
          "Ramón Terrats"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "attacking_duel, midfield_pairing"
      },
      "Dani Olmo": {
        "opponents": [
          "Ramón Terrats",
          "Mario Martín"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "attacking_duel, defensive_duel, midfield_pairing"
      },
      "Anthony Gordon": {
        "opponents": [
          "Andrés García",
          "Abdel Abqar"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Karim Adeyemi": {
        "opponents": [
          "Andrés García",
          "Abdel Abqar"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "Fermín López": {
        "opponents": [
          "Mario Martín",
          "Orel Mangala"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "defensive_duel, midfield_pairing"
      },
      "Pau Cubarsí": {
        "opponents": [
          "Martín Satriano",
          "Enes Ünal",
          "Christantus Uche"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "defensive_duel"
      },
      "Jules Koundé": {
        "opponents": [
          "Christantus Uche"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Joan García": {
        "opponents": [
          "Martín Satriano",
          "Enes Ünal"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Alejandro Balde": {
        "opponents": [
          "Christantus Uche"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "away_player_antagonists": {
      "Francho Serrano": {
        "opponents": [
          "Raphinha"
        ],
        "primary_zone": "LWB vs RWB",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Mario Martín": {
        "opponents": [
          "Lamine Yamal",
          "Pedri",
          "Fermín López",
          "Dani Olmo"
        ],
        "primary_zone": "Central Mid vs Central Mid — Box-to-Box Midfield Contest",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Ramón Terrats": {
        "opponents": [
          "Dani Olmo",
          "Pedri"
        ],
        "primary_zone": "RWB vs LWB",
        "source": "defensive_duel, attacking_duel, midfield_pairing"
      },
      "Andrés García": {
        "opponents": [
          "Anthony Gordon",
          "Karim Adeyemi"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Abdel Abqar": {
        "opponents": [
          "Anthony Gordon",
          "Karim Adeyemi"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "defensive_duel"
      },
      "Orel Mangala": {
        "opponents": [
          "Fermín López",
          "Lamine Yamal"
        ],
        "primary_zone": "Central Mid vs Defensive Mid — Pressing/Creation Duel",
        "source": "attacking_duel, midfield_pairing"
      },
      "Martín Satriano": {
        "opponents": [
          "Pau Cubarsí"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "attacking_duel"
      },
      "Enes Ünal": {
        "opponents": [
          "Pau Cubarsí"
        ],
        "primary_zone": "Shadow Striker vs Centre Back — Half-Space Threat",
        "source": "attacking_duel"
      },
      "Christantus Uche": {
        "opponents": [
          "Pau Cubarsí",
          "Jules Koundé"
        ],
        "primary_zone": "Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle",
        "source": "attacking_duel"
      },
      "David Soria": {
        "opponents": [
          "Anthony Gordon",
          "Karim Adeyemi"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      },
      "Zaid Romero": {
        "opponents": [
          "Anthony Gordon"
        ],
        "primary_zone": "Shape fallback",
        "source": "formation_fallback"
      }
    },
    "key_tactical_insight": "Home midfield dominates with ~54% possession expected (Lamine Yamal vs Mario Martín). Total antagonist xG — Home: 2.26, Away: 1.11. Home danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle. Away danger zone: Striker vs Two Centre Backs — 1v2 Aerial/Physical Battle.",
    "lambda_factors": {
      "home_gk_opposition_factor": 1.0107,
      "away_gk_opposition_factor": 0.8584,
      "home_set_piece_bonus": 0.0741,
      "away_set_piece_bonus": 0.159,
      "home_defensive_solidity_vs": 1.016,
      "away_defensive_solidity_vs": 0.8671,
      "home_midfield_factor": 1.062,
      "away_midfield_factor": 0.947,
      "stage_discount": 1.0,
      "quality_gap_applied": true,
      "home_avg_quality": 0.8662,
      "away_avg_quality": 0.4847,
      "avg_quality_gap": 0.3815,
      "squad_value_gap_log": 2.5165,
      "top5_value_gap_log": 2.444,
      "attack_value_gap_log": 2.438,
      "elite_count_gap": 10,
      "combined_quality_gap": 0.8108,
      "stronger_lambda_boost": 0.4459,
      "weaker_lambda_suppression": 0.2594,
      "home_bench_lambda_bonus": 0.1364,
      "away_bench_lambda_bonus": 0.1019,
      "home_bench_players_modelled": 7,
      "away_bench_players_modelled": 7,
      "fbref_team_priors": {
        "applied": true,
        "home_squad": "FC Barcelona",
        "away_squad": "Getafe",
        "home_goals_per90": 3.6666666666666665,
        "away_goals_against_per90": 0.33,
        "away_goals_per90": 0.3333333333333333,
        "home_goals_against_per90": 4.0,
        "home_empirical_lambda": 0.896,
        "away_empirical_lambda": 0.988,
        "blending_weight": 0.228
      },
      "mismatch_score_pressure_applied": true,
      "mismatch_score_pressure_gap": 0.8108,
      "mismatch_favorite_lambda_boost": 1.2077,
      "mismatch_underdog_lambda_factor": 0.9289,
      "pre_mismatch_home_lambda": 3.784,
      "pre_mismatch_away_lambda": 0.806,
      "competitive_underdog_floor_applied": false,
      "pre_calibration_home_lambda": 3.7837,
      "pre_calibration_away_lambda": 0.8057,
      "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": 3.944,
      "final_away_lambda": 0.65
    }
  },
  "home_standing": {
    "available": true,
    "team_position": 1,
    "opponent_position": 11,
    "standing_lambda_multiplier": 1.3902,
    "attack_index": 3.581,
    "defense_concede_index": 0.606,
    "form_multiplier": 1.057,
    "team_attack_rate_contextual": 5.17,
    "opp_defense_rate_contextual": 0.88,
    "team_ppg": 3.0,
    "opponent_ppg": 1.14
  },
  "away_standing": {
    "available": true,
    "team_position": 11,
    "opponent_position": 1,
    "standing_lambda_multiplier": 0.6286,
    "attack_index": 0.347,
    "defense_concede_index": 0.809,
    "form_multiplier": 0.943,
    "team_attack_rate_contextual": 0.5,
    "opp_defense_rate_contextual": 1.17,
    "team_ppg": 1.14,
    "opponent_ppg": 3.0
  },
  "xgboost_reasoning": {
    "summary": "Antagonist + XGBoost match analysis for Barcelona vs Getafe. 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 3.784, Away 0.806). Final calibrated Poisson lambdas: Home 3.944, Away 0.650 (most likely score 3-0).",
    "competition": "LaLiga",
    "model_coverage": {
      "home_starters_count": 11,
      "home_xgboost_players": 11,
      "home_fbref_players": 0,
      "away_starters_count": 11,
      "away_xgboost_players": 10,
      "away_fbref_players": 10,
      "home_bench_modelled": 7,
      "away_bench_modelled": 7
    },
    "team_priors": {
      "applied": true,
      "home_squad": "FC Barcelona",
      "away_squad": "Getafe",
      "home_goals_per90": 3.6666666666666665,
      "away_goals_against_per90": 0.33,
      "away_goals_per90": 0.3333333333333333,
      "home_goals_against_per90": 4.0,
      "home_empirical_lambda": 0.896,
      "away_empirical_lambda": 0.988,
      "blending_weight": 0.228
    },
    "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": 3.944,
      "away_lambda": 0.65,
      "micro_duel_home_lambda": 3.784,
      "micro_duel_away_lambda": 0.806
    },
    "calibration_and_pressure": {
      "competition_calibration_applied": false,
      "competition_calibration_scale": 1.0,
      "mismatch_pressure_applied": true,
      "underdog_floor_applied": false
    }
  },
  "timestamp": "2026-09-30T01:04:03Z",
  "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,
    "aerialLost": 12.0,
    "totalPass": 150.0,
    "accuratePass": 145.0,
    "keyPass": 8.0,
    "expectedAssists": 1.5,
    "goalAssist": 4.0,
    "expectedGoals": 3.0,
    "expectedGoalsOnTarget": 6.0,
    "xgot": 6.0,
    "goals": 5.0,
    "totalShots": 12.0,
    "onTargetScoringAttempt": 8.0,
    "shotOffTarget": 8.0,
    "rating": 10.0,
    "minutesPlayed": 130.0,
    "duelWon": 20.0,
    "duelLost": 20.0,
    "ballRecovery": 18.0,
    "fouls": 12.0
  }
}